2 분 소요


※ 데이터정제 패키지: tidyr

> install.packages("tidyr")
> library(tidyr)


■ Pivoting

□ pivot_longer()

  • untidy data를 tidy data 형식으로 변경
  • parameter
    • cols : long format의 기준이 될 컬럼
    • names_to : 새로운 컬럼명
    • values_to : value 컬럼명
# 기본형식
> pivot_longer(data, cols, names_to, values_to, )
> df %>%
    pivot_longer(cols = " ",
    names_to = " ",
    values_to = " ")


□ gather()

  • pivot_longer()와 같은 기능 (더이상 업데이트 되지 않는 함수)
# 기본형식
> gather(data, key, value, colA, colB, )


□ pivot_wider()

  • tidy data를 untidy data 형식으로 변경
  • parameter
    • names_from : 어느 값을 열로 만들고 싶은지, 그 값이 포함된 열의 이름
    • values_from : 그 값들이 가지는 또다른 컬럼명
# 기본형식
> pivot_wider(data, names_from, values_from, )
> df %>%
    pivot_wider(names_from = " ",
    values_from = " ")


□ spread()

  • pivot_wider와 같은 기능 (더이상 업데이트 되지 않는 함수)
# 기본형식
> spread(data, key, value)



■ separate

□ separate_wider_delim()

  • value 값을 여러 개로 분리하여 새로운 컬럼으로 만듦
  • parameter
    • col : 분리하고자 하는 value가 들어있는 컬럼명
    • names : 분리된 value들이 새롭게 들어갈 컬럼명
    • delim : value를 분리할 구분자
# 기본형식
> separate_wider_delim(data, col, names, delim)	
> df %>%
    separate_wider_delim(col = "컬럼명",	
    names = c("new_col1", "new_col2"),
    delim = "구분자")


□ separate()

  • separate()와 같은 기능 (더이상 업데이트 되지 않는 함수)
  • parameter
    • col : 분리하고자 하는 value가 들어있는 컬럼명
    • into : 분리된 value들이 새롭게 들어갈 컬럼명
    • sep : value를 분리할 구분자
# 기본형식
> separate(data, col, into, sep)
> df %>%
    separate(col,
    into = c(),
    sep = " ") 


□ separate_wider_position()

  • 문자를 분리할 구분자가 없을 때 문자의 개수로 value를 분리
  • parameter
    • col : 분리하고자 하는 value가 들어있는 컬럼명
    • widths : 분리된 value들이 새롭게 들어갈 컬럼명과, 분리할 문자의 개수 지정
# 기본형식
> separate_wider_position(data, cols, width, )
# value 전체를 나눌 때	
> df %>%
    separate_wider_position(cols,	
    widths = c(newCol1 = 나뉠 문자 개수,	
    newCol2 = 나뉠 문자 개수, ))

# value 중 일부만 나누고 싶을 때
> df %>%
    separate_wider_position(cols,
    widths = c(newCol1 = 나뉠 문자 개수,
    공백(문자 개수)
    newCol2 = 나뉠 문자 개수, ))


□ separate_longer_delim()

  • value를 구분자로 분할 후, long format으로 만들고 싶을 때 사용
# 기본형식
> separate_longer_delim(data, cols, delim, )
> df %>%
    separate_longer_delim(cols,
    delim = "구분자")


■ unite()

  • 두 개 이상의 열을 하나의 열로 합침
  • 기본 구분자는 언더스코어(_) 임
  • 구분자를 직접 지정하고 싶을때는 sep 사용
  • parameter
    • new_cols : 새롭게 생성할 컬럼명
    • cols: 합치고 싶은 컬럼명들
    • sep: 컬럼들을 합쳐서 어떤 구분자로 구분할 것인지
# 기본형식
> unite(data, new_cols, cols, cols, , sep = "_")
> df %>%
    unite(새롭게 생성할 컬럼명,
    값을 합칠 컬럼명1,
    값을 합칠 컬럼명2,
    ,
    sep = "구분자")


■ expand()

  • 각각의 컬럼을 조합하여, 나올수 있는 경우의 수를 모두 보여줌
# 기본형식
> expand(data, cols, cols, )
> df %>%
    expand(조합할 컬럼1,
    조합할 컬럼2,
    조합할 컬럼3,
    )

댓글남기기