본문 바로가기
R 주제/R 기초 및 통계 강의

[R 강의] 89. 데이터프레임에서 결측치(NA)의 위치를 알아내기

by 만다린망고 2020. 5. 22.
반응형

도구 R로 푸는 통계

89. 데이터프레임에서 결측치(NA)의 위치를 알아내기


 

결측치가 있는 데이터프레임에서, 결측치 NA의 위치를 "행,열"형태로 출력해봅시다. 예를들어 3행 2열에 결측치가 있다면 "3,2"가 출력되는 것입니다.

설명은 주석으로 대신합니다.


#먼저 결측치가 들어있는 벡터를 2개 정의합시다.
V1=c(1,2,3,NA,5)
V2=c(1,2,NA,NA,3)

#벡터 2개를 이용하여 데이터프레임을 만들겠습니다.
df=data.frame(V1,V2)

 

#dim 함수를 이용하여 데이터프레임의 행과 열의 수를 알아냅니다. dim(df)[1] 은 행의 수 입니다. dim(df)[2]는 열의 수 입니다.

 

nrow=dim(df)[1]

ncol=dim(df)[2]


#For문을 이중으로 사용할 것입니다. i가 행, j가 열에 해당됩니다.
#모든 원소를 for문으로 접근하게 됩니다. 각 원소에 접근했으을 때 NA가 있는지를 if문으로 확인하고, 있다면 행과 열을 출력합니다.
for (i in 1:nrow)
{
  for (j in 1:ncol)
  {
    if (is.na(df[i,j]))
    {
      print(paste(i,',',j))
    }
  }
}


아래는 출력 결과입니다.


> source('~/.active-rstudio-document')
[1] "3 , 2"
[1] "4 , 1"
[1] "4 , 2"


쉽게 사용할 수 있도록 함수로 만들어봅시다.


findNA=function(D)
{

nrow=dim(D)[1]

ncol=dim(D)[2]


for (i in 1:nrow)
{
  for (j in 1:ncol)
  {
    if (is.na(D[i,j]))
    {
      print(paste(i,',',j))
    }
  }
}
}


위에서 정의한 데이터프레임에 함수를 사용해봅시다.


> findNA(df)
[1] "3 , 2"
[1] "4 , 1"
[1] "4 , 2"


 

영상이 더 편하신 분

 

반응형

댓글