매일 매일 미라클 코딩
데이터 분석툴 R사용하기 (2) - DataFrame 과 함수 본문
데이터프레임(Data frame) : 같은길이를 갖는 벡터들의 리스트
- 2차원 자료구조
- List와 matrix의 특성을 보유
- 가장 일반적으로 사용되는 자료구조
✔ 데이터 프레임 생성
data.frame(a,b,c) 함수 :
char1<- rep(LETTERS[1:3], c(2,2,1)) #rep는 반복함수. LETTERS 는 A-Z 가 들어있는 벡터
num1 <- rep(1:3 , c(2,2,1)) #1 ~3까지의 수를 각각 두번 두번 한번씩 반복
test1 <- data.frame(char1, num1) #데이터 프레임 생성
data.frame()의 각 변수가 컬럼명이 되고 인자들은 열 기준으로 합쳐져 데이터 프레임을 생성한다.
데이터프레임 합치기
cbind - 열 기준으로 데이터 합치기
rbind - 행 기준으로 데이터 합치기
merge - 데이터 병합 (inner join)
데이터프레임 요소 생성 및 호출
names() = colnames(), rownames() #행과 열 이름
length() = ncol(), nrow() #행과 열 갯수
Subsetting 일부 컬럼 추출
df <- data.frame( x=1:3, y=3:1, z= letters[1:3])
>df | > df[c("x", "z")] | > df[c(1,3) , ] | > df[ , c("x","z")] | df[df$x ==2, ] |
x y z 1 1 3 a 2 2 2 b 3 3 1 c |
x z 1 1 a 2 2 b 3 3 c |
x y z 1 1 3 a 3 3 1 c |
x z 1 1 a 2 2 b 3 3 c |
x y z 2 2 2 b |
subset() : 특정조건을 만족하는 observation 선택
A <- subset(df, z=="b")
B <- subset(df, z=="a") #각 조건을 만족하는 그룹만 분리
apply 함수: 각 원소에 대해서 함수를 적용하는 Mapping 함수
- apply( 데이터 , 기준(1:row-wise, 2:column-wise), 적용할 함수)
> M<- matrix(seq(1:16),4,4)
> M
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
> apply(M,1,min) #1 : 모든 행에 적용
[1] 1 2 3 4
> apply(M,2,max) #2 : 모든 열에 적용
[1] 4 8 12 16
- lapply(list, function) : 리스트 각 원소에 함수 적용
- sapply(list, function) : 리스트의 각 컴포넌트에 함수를 적용하고 Vector로 반환
- mapply(function, data1, data2) : 같은 위치의 값들을 대상으로 함수 적용
- rapply(list, function): list 의 컴포넌트가 값을 가질때까지 recursive하게 찾아서 함수적용 -> Vector 반환
- tapply(vector, factor, function): 벡터의 subset에 함수를 적용
'데이터베이스 > R' 카테고리의 다른 글
데이터분석툴 R 사용하기 (3) - 제어문과 함수 (0) | 2021.09.18 |
---|---|
데이터 분석툴 R 사용하기 (1) (0) | 2021.09.16 |