반응형


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("라이브러리명")을 통해 설치할 수 있다.


그림을 통해 확인해보자.



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














반응형