Patrick's 데이터 세상
R 언어와 문법 - 데이터 구조 본문
R의 데이터 구조
① 벡터
벡터 데이터 구조는 하나의 스칼라 값, 혹은 하나 이상의 스칼라 원소들을 갖는 단순한 형태의 집합
벡터 데이터 내에 들어갈 수 있는 원소는 숫자, 문자, 논리 연산자 등
명령어 c를 이용해 선언할 수 있다.(c:concentration(연결))
※ 논리 연산자를 입력할 때는 반드시 모든 글자를 대문자로 기입하여야 논리 연산자로 인식
※ = 대신 <-를 사용할 수도 있다. ex) x<-c(1, 10, 24, 40) = x=c(1,10,24,40)
ex)
x=c(1, 10, 24, 40)
y=c("사과", "바나나", "오렌지")
z=c(TRUE, FALSE, TRUE)
c 명령어를 이용하여 벡터와 벡터를 결합하여 새로운 벡터를 형성할 수도 있다.
합치는 벡터에 문자형 벡터가 포함되면 합쳐지는 벡터는 문자형 벡터가 된다.
ex)
x<-c(1, 10, 24, 40)
y<-c("사과", "바나나", "오렌지")
xy<-c(x,y)
xy
#Result
[1] "1", "10", "24", "40", "사과", "바나나", "오렌지"
② 행렬
matrix 명령어의 첫 번째 인수는 행렬에 들어가는 데이터들을 묶어놓은 벡터가 할당되며 ncol 옵션으로 열(column)의 수를 정하거나 nrow 옵션으로 행(row)의 수를 정해 행렬의 크기를 사용자가 원하는 대로 지정할 수 있다.
기본적으로 값들은 열을 우선 채우는 방향으로 입력된다.
만일 행을 우선 채우는 방향을 원하면, byrow=T 옵션을 추가하면 된다.
ex)
mx = matrix(c(1,2,3,4,5,6), ncol=2)
mx
#Result
[,1[ [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
명령어 rbind와 cbind를 사용해 이미 만들어져있는 벡터를 서로 합쳐 행렬을 만들 수도 있다.
rbind의 r은 row를 의미하는데 기존의 행렬에 행을 추가하는 형태로 데이터를 결합시킨다.
cbind의 c는 column을 의미하는데 기존의 행렬에 열을 추가하는 형태로 데이터를 결합
ex)
mx
#Result
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
r1=c(10, 10)
c1=c(20, 20, 20)
rbind(mx, r1)
#Result
[,1] [,2]
1 4
2 5
3 6
r1 10 10
cbind(mx, c1)
#Result
c1
[1,] 1 4 20
[2,] 2 5 20
[3,] 3 6 20
※ 데이터 프레임을 서로 합치는 경우에는 그대로 데이터 프레임의 형태로 데이터를 합쳐준다.
③ 데이터 프레임
데이터 프레임은 행렬과 유사한 2차원 목록 데이터 구조.
다루기가 쉽고 한 번에 많은 정보를 담을 수 있어 R에서 가장 널리 사용된다.
명령어 data, frame을 이용하면 여러 개의 벡터를 하나의 데이터 프레임으로 합쳐 입력할 수 있다.
ex)
income = c(100, 200, 150, 300, 900)
car = c("kia", "hyundai", "kia", "toyota", "lexus")
marriage = c(FLASE, FALSE, FALSE, TRUE, TRUE)
mydat = data.frame(income, car, marriage)
income 벡터는 숫자형, car 벡터는 문자형, marriage는 논리 연산자 벡터이다.
data.frame 명령어를 이용해 세 벡터를 합쳐 하나의 데이터 프레임인 mydat을 생성한다.
ex)
mydat
#Result
income car marriage
1 100 kia FALSE
2 200 hyundai FALSE
3 150 kia FALSE
4 300 toyota TRUE
5 900 lexus TRUE
'Programming > R' 카테고리의 다른 글
R 언어와 문법 - 사용자 정의 함수 (0) | 2020.06.25 |
---|---|
R 언어와 문법 - 반복 구문과 조건문 (0) | 2020.06.24 |
R 언어와 문법 - 데이터 핸들링 (0) | 2020.06.24 |
R 언어와 문법 - 기초 함수 (0) | 2020.06.24 |
R 언어와 문법 - 외부 데이터 불러오기 (0) | 2020.06.24 |