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("라이브러리명")을 통해 설치할 수 있다.
그림을 통해 확인해보자.
위의 명령어를 따라하며 라이브러리(패키지)를 설치, 적용을 해보자.
'Basic > R' 카테고리의 다른 글
R언어 Matrix, Array, Data frame (0) | 2018.04.05 |
---|---|
Data Types, Lists, Attribute, name 함수 (0) | 2018.04.03 |
R언어 list, attr, names, dim, factor, table (2) | 2018.03.23 |
R언어 난수 생성, 정렬, 인덱싱, 벡터 연산 (0) | 2018.03.13 |
R언어 변수 조회, 제거, 파일 쓰기, 데이터 관찰 (0) | 2018.03.13 |