-
ADSP - R프로그래밍 정리 | 데이터구조카테고리 없음 2023. 8. 10. 13:20
a. 벡터
R데이터 구조 중 가장 단순하며 원소들로 이루어진 1차원 집합이다. 원소가 숫자면 숫자벡터, 문자면 문자벡터가된다. 원소중 문자가 하나라도 있을 경우엔 문자 벡터가 된다.
명령어 c를 이용해서 선언된다. => c(원소1, 원소2, 원소3)
b. 행렬
행과 열로 이루어진 2차원 데이터 형대이다. 데이터 프레임 또한 2차원 형태의 데이터 구조로, 행렬은 모든 데이터 유형이 동일해야하나 데이터 프레임은 서로 다른 유형의 데이터가 저장될 수 있다.
명령어 matrix를 통해 선언된다 => matrix(행렬에 들어가는 데이터를 묶어놓은 벡터c, ncol=열의수, nrow=행의수)
행렬 데이터는 열부터 채워진다.
a<-matrix(c(1,2,3,4,5,6), ncol=3)
a [,1][,2][,3]
[1,] 1 3 5
[2,] 2 4 6
행부터 채우고자하는 경우 byrow=T 옵션을 추가한다.
matrix(c(1,2,3,4,5,6,), ncol=3, byrow=T)
a [,1][,2][,3]
[1,] 1 2 3
[2,] 4 5 6
기존 생성되어있는 벡터를 결합하여 행렬을 생성할 수 있다. 행방향 결합 rbind, 열방향 결합 cbind
a<-c(1,2,3)
b<-c(10,20,30)
rbind(a,b) => a,b가 1행2행이됨
[,1][,2][,3]
a 1 2 3
b 10 20 30
cbind(a,b) => a,b가 1열2열이 됨
a b
[1,] 1 10
[2,] 2 20
[3,] 3 30
3. 배열
배열은 2차원데이터구조를 쌓아올린 형태로 행렬형태의 데이터를 층위별로 저장한다. 배열데이터도 열부터 채워지는 듯하다.
array(배열에 들어가는 벡터, dim=(행수, 열수, 층수))
>array(c(1,2,3,4,5,6), dim(3,2,2))
,,1 (1층)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
,,2 (2층)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
4. 데이터프레임
행렬과는 다르게 각 열이 서로 다른 데이터 타입을 가질 수 있으나 각 열의 데이터 타입은 동일해야한다.
데이터 프레임이 생성된 뒤에는 행렬과 동일하게 다룰 수 있다.
명령어 data.frame으로 생성
data.frame(벡터1, 벡터2)
a <- c(1,2,3)
b <- c("apple","orange", "banana")
>data.frame(a,b)
a b
1 1 apple
2 2 orange
3 3 banana
5. 리스트
벡터와 비슷하나 벡터와 달리 여러 자료형의 데이터를 섞어서 저장할 수 있다. 벡터/dataframe등의 배열요소도 원소로 저장가능하다.
대괄호 하나 사용 [] => 리스트로 출력
대괄호 겹쳐서 사용 [[]] => 원소 출력
리스트$원소명 : 해당 원소 출력
리스트에 없는 원소명을 지정하면 항상 NULL출력
list(요소1, 요소2 ...) 로 선언한다.
a <- c(1,2,3)
b <- c("apple","orange", "banana")
list(100,a,b,"lee","kim")
list[[1]] ==> 100
list[[2]] ==> 1,2,3
list[[3]] ==> "apple", "orange", "banana"
반응형