[R] 데이터 프레임 다루기
- R
- 2022. 5. 6.
반응형
반응형
R에서 가장 많이 쓰이게 되는 데이터 프레임(DataFrame) 내용입니다.
일단 데이터 프레임은 벡터들로 이루어진 집합으로 볼 수 있습니다. 그런데 행과 열을 가지는 2차원 데이터 타입이고 다양한 형식을 한데 모아서 저장을 할 수 있습니다.
행렬은 동일한 데이터 타입을 가져야만 생성이 되었지만 데이터프레임은 꼭 그렇지 않아도 됩니다.
데이터프레임(data frame) 생성하기
데이터 프레임은 다음과 같은 만들 수 있습니다.
파라미터는 딱히 존재하지 않고 key-value형식으로 이름과 벡터를 매칭시켜주면 됩니다.
data.frame(변수명1=벡터1,변수명=벡터2,...)
>df = data.frame(col1=c(1,2,3,4),col2=c('a','b','c','d'))
>df
col1 col2
1 1 a
2 2 b
3 3 c
4 4 d
데이터 구조를 한눈에 보려면 str()함수를 사용합니다.
> str(df)
'data.frame': 4 obs. of 2 variables:
$ col1: num 1 2 3 4
$ col2: chr "a" "b" "c" "d"
이미 벡터가 정의되어있는경우에는 변수명을 굳이 입력하지 않아도 됩니다.
>StudentID = c(1:10)
>gender = c('M','F','M','M','F','F','F','M','F','M')
>paid = c(T,F,T,F,T,F,T,F,T,F)
>df = data.frame(StudentID,gender,paid)
>df
StudentID gender paid
1 1 M TRUE
2 2 F FALSE
3 3 M TRUE
4 4 M FALSE
5 5 F TRUE
6 6 F FALSE
7 7 F TRUE
8 8 M FALSE
9 9 F TRUE
10 10 M FALSE
데이터프레임 원소 불러오기
데이터프레임에서 원소를 불러오려면 인덱스가 있으므로 인덱스를 기반으로 가져오면 됩니다.
> df[1,2]
[1] "M"
> df[2,2:3]
gender paid
2 F FALSE
> df[2:3,2]
[1] "F" "M"
컬럼을 기준으로 가져오려면 [,인덱스값] 이나 직접 컬럼이름을 벡터형식으로 나열해 가져옵니다.
> df[,2]
[1] "M" "F" "M" "M" "F" "F" "F" "M" "F" "M"
> df[,c('gender')]
[1] "M" "F" "M" "M" "F" "F" "F" "M" "F" "M"
행을 기준으로 한다면 [인덱스값,]으로 합니다.
> df[2,]
StudentID gender paid
2 2 F FALSE
subset을 이용한 불러오기
단순하게 행이나 열을 불러오는 방법은 위와 같이 하면 됩니다.
하지만 필터링을 하는 논리 연산자를 쓰려면 subset을 이용해 불러올 수 있습니다.
> subset(df,StudentID>4 & paid==T)
StudentID gender paid
5 5 F TRUE
7 7 F TRUE
9 9 F TRUE
> subset(df,paid==T,select=c('gender'))
gender
1 M
3 M
5 F
7 F
9 F
마치며
간단하게 데이터 프레임 다루는 방법을 알아보았습니다.
더 복잡한 작업은 dplyr로 주로 하게 될겁니다.
관련 포스팅
[R] 행렬(matrix) 다루기
'R' 카테고리의 다른 글
[R] 조건문 만들기(if, ifelse,switch) (0) | 2022.05.18 |
---|---|
[R] 데이터 결합하기 (0) | 2022.05.13 |
[R] 행렬(matrix) 다루기 (0) | 2022.05.05 |
[R] 리스트(list) (0) | 2022.05.03 |
[R] 벡터 다루기(내장함수와 연산) (0) | 2022.04.28 |