도구 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"
쉽게 사용할 수 있도록 함수로 만들어봅시다.
{
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"
영상이 더 편하신 분
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R강의] 91. 그래프 색칠에 사용하는 polygon 함수 (0) | 2020.05.27 |
---|---|
[R 강의] 90. 결측치를 일괄 변경하는 함수 만들기 (0) | 2020.05.25 |
[R 강의] 88. 히스토그램 여러 개 겹쳐서 그리는 방법 (0) | 2020.05.19 |
[R 강의] 87. 마진(margin)과 테두리 선 넣기 (0) | 2020.05.18 |
[R 강의] 86. 결측치(NA) 확인, 제거, 수정하는 방법 (0) | 2020.05.15 |
댓글