×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 1,499,763명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)


1. 자료구조


우선 R언어에서 자료구조는 다음과 같이 정의한다.


 

Homogeneous(동일한 자료형)

Heterogeneous(서로 다른 자료형) 

1d

Atomic Vector 

List 

2d 

Matrix 

Data frame 

nd(n차원) 

Array 

 


우리가 흔히 알고있는 c언어에서 char arr[100]은 동일한 char 자료형만 담을 수 있는 것을 R에서 Atomic Vector이라고 정의한다.


2차원 배열을 Matrix라 하고 n차원 배열을 Array라고 한다.


R에서 List는 구조체 배열 정도로 생각하면 될 것 같다. (Data frame은 2차원 구조체)


참고로 R에는 c에서 쓰는 변수가 없다.(int a; 같은 것들)


모든 것이 벡터로 이루어 져있다고 보면 된다.(하지만 우리가 익숙하게 말하는 것은 변수이기에 이 게시물에서는 변수라고 칭한다.)


이제 간단한 변수 선언 및 몇가지 연산을 해보자.



2. 변수 선언 및 연산



좌측 하단에 인터프리터 방식으로 선언 한 것들을 보자.
(참고로 우측 상단을 보면 전역 변수로 선언된 것들을 볼 수 있다.)



<-를 통해 값을 입력 할 수 있음을 알 수 있다.

x <- 2는 x = 2와 동일하다.


참고로 R은 C언어와 다르게 char, int 같은 자료형이 없다.


z <- x + y를 통해 값을 넣어줄 수 있고


x*x는 곱셈연산

x**x는 x^x연산(제곱연산)

%/%는 정수 나눗셈 연산이다.



이번에는 진짜 변수가 없고 벡터로만 존재하는지 알아보자.



a <- 1을 했을때 True인데 벡터값 1,2,3을 넣어도 True이다.


즉, a<-1을 해도 a[1] = 1로 존재하고 있다는 의미이다.

(벡터로 값을 대입할때는 a <- c( ~~ )로 정의한다.)



** R언어에서 0번째 배열에는 항상 Type가 들어가있다. **


a[0]를 출력해보면 numeric(0)라고 뜨고 a<-"hello"를 한 후 a[0]를 하면 character(0)가 뜬다.

(Atomic vector 타입은 총 4가지 종류 logical, integer, double(numeric), char가 있다.)



Q.

이번에는 a <- c(1, c(2,3,4))로 대입해보자.

과연 a[2]는 2 3 4가 출력될까 2가 출력될까


정답은 2가 출력이 된다.


그 이유는 R에서 c(1,2,3,4)와 c(1, c(2,3,4))를 동일하게 여기고 있기 때문이다.





3. 라이브러리 확인 및 설치, 추가


내가 실행하고 있는 R에 라이브러리가 어떤것이 있는지 확인하기 위해서는 search() 함수를 이용하면 나타난다.


이때 어떤 라이브러리가 존재하는지 확인하기 위해서는 library(라이브러리명)을 입력하면 된다.

만약 존재한다면 라이브러리(패키지)를 부착해준다. 즉, #include를 해준다는 의미이다.


만약 라이브러리가 존재하지 않다면 install.packages("라이브러리명")을 통해 설치할 수 있다.


그림을 통해 확인해보자.



위의 명령어를 따라하며 라이브러리(패키지)를 설치, 적용을 해보자.