본문 바로가기
R

R ) NA를 이전 행 값으로 채우기 na.locf()함수 in r

by C.Mond 2022. 11. 12.
728x90
728x90

data를 다루가 보면 NA의 값을 이전 행에 있는 값으로 채우고 싶을때가 있습니다.

 

이때 간단하게 사용할 수 있는 함수에 대해 알아보려고 합니다.

df <- data.frame(col1=c(NA,"A",NA,NA,"B",NA,"c"), col2=c("B",NA,NA,"A","A","B",NA))

위와 같은 data를 사용하겠습니다.

 

col1과 col2의 NA를 위에 있는 행으로 채워 보겠습니다.

 

이때는 zoo library의 na.locf()함수를 사용해주면 됩니다.

 

na.locf(df$col2,fromLast=F)

위 처럼 NA가 위에 있는 행 값으로 변환 되는것을 볼 수 있습니다. NA가 연속으로 2개가 있어도 가장 위에 있는 행으로 채워줍니다.

 

여기서 fromLast인자에 True를 주게 되면 아래에 있는 행의 값을 가져 옵니다.

여기서 주의해야할것은 시작 data가 NA라면 앞이나 뒤에서 가져올 행의 값이 없으므로 생략이 됩니다.

 

위 처럼 col1의 첫째 값이 생략이 됩니다  

 

이때는 na.rm 인자에 F를 넣어  NA를 살릴 수 있습니다.

728x90
728x90

댓글