해보記/R

<記> R 데이터 핸들링 (2)

Light Pillar 2019. 12. 13. 21:36

데이터 합치기

데이터를 합치기 위해서는 cbind / rbind / merge 함수 등이 주로 사용된다.

 

cbind( )

cblind( ) 함수는 컬럼(column)을 합치기 위한 함수다. 합칠 대상이 되는 데이터의 행 개수는 동일하여야 한다.

합칠 대상이 되는 데이터가 데이터 프레임(data.frame)인 경우는 데이터의 유형이 달라도 상관없지만, 행렬(matrix)인 경우는 데이터 유형이 같아야 한다. (행렬은 원소는 단일 유형의 데이터로 구성되어야 함가 되는 데이터가 한가지 유형으로만 되어야 함)

> aa <- c(1:5)
> bb <- c(5:1)
> cbind(aa, bb)

> tmp_df <- data.frame(AA = c(1:5), BB = letters[1:5])
> cbind(tmp_df, aa)

 

rbind( )

rbind( )는 행(row)을 합치기 위한 함수다. 합칠 대상이 되는 데이터의 열 개수는 동일하여야 한다.

합칠 대상이 되는 데이터가 데이터 프레임(data.frame)인 경우 데이터 각각의 열의 유형이 동일하여야 한다.

> rbind(aa, bb)

> tmp_df1 <- data.frame(AA = c(1:2), BB = c("A", "A"))
> tmp_df2 <- data.frame(AA = c(2:1), BB = c("B", "B"))
> rbind(tmp_df1, tmp_df2)

 

merge( )

merge( ) 함수는 공통된 열을 하나이상 가지고 있는 두 데이터 프레임에 대하여 공통된 열에 맞춰 행들을 하나의 데이터 프레임으로 병합하기 위해서 사용하는 함수다.

> tmp1 <- data.frame(AA = c("A", "A", "B"), BB = c(1:3))
> tmp2 <- data.frame(AA = c("A", "C"), CC = c("OLD", "NEW"))
# tmp1 기준으로 데이터 합치기
> merge(tmp1, tmp2, by = "AA", all.x = T)
# tmp2 기준으로 데이터 합치기
> merge(tmp1, tmp2, by = "AA", all.y = T)

# 전체 합치기 매칭이 안되는 값은 NA로 표시
> merge(tmp1, tmp2, by = "AA", all = T)
# 매칭이 되어지는 데이터만 합치기
> merge(tmp1, tmp2, by = "AA", all = F)

 

데이터 분할하기

split( )

집단별 데이터를 분류하기 위해서는 split( ) 함수를 사용하면 된다. 집단별로 분류된 데이터는 list 형태로 생성된다.

> split(tmp1, tmp1$AA)

 

strsplit( )

문장을 특정한 구분자 단위로 나눌 때 strplit( ) 함수를 사용한다.

> strsplit("A text I want to display with spaces", " ")

 

자료형 변환하기

문자열, 복소수, 실수, 정수 혹은 논리형 등 단일 자료형인 데이터에 대하여 다른 자료형으로 변환한다.

# 각 자료형에 대해서, 값들을 그 자료형으로 변환하는 함수
> as.character( )     # 문자형으로 변환
> as.complex( )      # 복소수형으로 변환
> as.numeric( )       # 실수형으로 변환
> as.double( )
> as.integer( )        # 정수형으로 변환
> as.logical( )         # 논리형으로 변환
> as.factor( )          # 팩터형으로 변환
> as.date( )            # 날짜형으로 변환

 

데이터 구조 변환하기

데이터의 구조를 필요에 따라 다른 데이터 구조로 변환한다.

# 데이터 구조를 변환하는 함수
> as.data.frame( )         # 데이터 프레임 형태로 변환
> as.list( )                   # 리스트 형태로 변환
> as.matrix( )               # 메트릭스 형태로 변환
> as.vector( )               # 벡터 형태로 변환

'해보記 > R' 카테고리의 다른 글

<記> R 함수 - 데이터 요약, 대푯값, 정렬  (0) 2019.12.17
<記> R 데이터 핸들링 (3)  (0) 2019.12.16
<記> R 데이터 핸들링 (1)  (0) 2019.12.10
<記> R 연산자  (0) 2019.12.06
<記> R List  (0) 2019.12.05