R 주제/R 기초 및 통계 강의
[R강의] 163. 벡터 결측치의 위치를 알려주는 함수 만들기
만다린망고
2023. 8. 29. 10:23
반응형
아래와 같은 벡터가 있다고 합시다.
v=c(NA,2,3,4,NA)
결측치 여부를 확인하는 것은 is.na 로 가능합니다.
> is.na(v)
[1] TRUE FALSE FALSE FALSE TRUE
오늘 하고 싶은 것은 결측치의 위치를 출력해주는 함수를 만드는 것입니다. 위 벡터를 예로 들면 결측치의 위치인 1과 5를 출력해주는 것입니다.
함수를 만들기 전에 먼저 하나의 벡터의 NA 위치를 출력해주는 코드를 짜봅시다. 아래와 같습니다.
v=c(NA,2,3,4,NA)
res=c()
for (i in 1:length(v)){
if (is.na(v[i])){
res=append(res,i)
}
}
v[i] 가 NA 인 경우에 i를 res에 추가하는 코드입니다. 예를들어 v[3]이 NA라면 3이 res에 추가됩니다. 세번째 원소가 NA이므로 3을 r추가하는 것입니다. res는 우리가 얻고싶은 결과값입니다. 위 예제에서는 res가 1,5가 되어야 합니다.
위 코드를 실행한 뒤 res를 입력해보면 아래와 같이 우리가 원하는 대로 출력되는 것을 알 수 있습니다.
> res
[1] 1 5
이제 함수로 만들어봅시다. 함수 이름은 where.na.vec로 했습니다.
where.na.vec=function(v){
res=c()
for (i in 1:length(v)){
if (is.na(v[i])){
res=append(res,i)
}
}
return(res)
}
함수를 사용해봅시다.
> where.na.vec(v)
[1] 1 5
결과가 잘 출력됩니다. 다른 벡터를 하나 만들어서 한번 더 확인해봅시다.
> v2=c(NA,NA,NA,4)
> where.na.vec(v2)
[1] 1 2 3
반응형