반응형
NA의 특정 열을 포함하는 행 생략
NA
데이터 프레임에서 값 을 생략하는 방법을 알고 싶지만 관심있는 일부 열에서만.
예를 들어
DF <- data.frame(x = c(1, 2, 3), y = c(0, 10, NA), z=c(NA, 33, 22))
하지만 난 단지 생략 데이터 원하는 y
이다 NA
, 그러므로 결과는해야한다
x y z
1 1 0 NA
2 2 10 33
na.omit
모든 행에 any가 포함 된 것을 삭제하는 것 같습니다 NA
.
누군가이 간단한 질문에서 나를 도울 수 있습니까?
그러나 지금은 다음과 같이 질문을 변경하면 :
DF <- data.frame(x = c(1, 2, 3,NA), y = c(1,0, 10, NA), z=c(43,NA, 33, NA))
x=na
또는 만 생략 z=na
하려면 |
in을 어디에 넣을 수 있습니까?
complete.cases
함수를 사용하여 함수에 넣을 수 있습니다 .
DF <- data.frame(x = c(1, 2, 3), y = c(0, 10, NA), z=c(NA, 33, 22))
completeFun <- function(data, desiredCols) {
completeVec <- complete.cases(data[, desiredCols])
return(data[completeVec, ])
}
completeFun(DF, "y")
# x y z
# 1 1 0 NA
# 2 2 10 33
completeFun(DF, c("y", "z"))
# x y z
# 2 2 10 33
편집 : s 가없는 행만 반환NA
열에서 하나 이상의 행을 모두 제거 NA
하려면 complete.cases
함수를 똑바로 사용하십시오 .
DF[complete.cases(DF), ]
# x y z
# 2 2 10 33
또는 completeFun
이미 워크 플로우에 세분화되어 있다면 ;)
completeFun(DF, names(DF))
사용하다 is.na
DF <- data.frame(x = c(1, 2, 3), y = c(0, 10, NA), z=c(NA, 33, 22))
DF[!is.na(DF$y),]
해들리가 tidyr
방금 놀라운 기능을 했어요drop_na
library(tidyr)
DF %>% drop_na(y)
x y z
1 1 0 NA
2 2 10 33
'서브셋'사용
DF <- data.frame(x = c(1, 2, 3), y = c(0, 10, NA), z=c(NA, 33, 22))
subset(DF, !is.na(y))
지금까지는 다음을 사용할 수 있습니다.
na.omit(data, cols = c("x", "z"))
이 시도:
cc=is.na(DF$y)
m=which(cc==c("TRUE"))
DF=DF[-m,]
두 개의 특정 열 중 하나에가 포함 된 경우 행을 생략하십시오 <NA>
.
DF[!is.na(DF$x)&!is.na(DF$z),]
이것을 시도하십시오 :
DF %>% t %>% na.omit %>% t
참고 URL : https://stackoverflow.com/questions/11254524/omit-rows-include-specific-column-of-na
반응형
'program story' 카테고리의 다른 글
두 지리적 지점 사이의 거리를 가져옵니다 (0) | 2020.08.06 |
---|---|
MKMapView의 확대 / 축소 수준 설정 (0) | 2020.08.06 |
Angularjs : 오류 : [ng : areq] 인수 'HomeController'는 (는) 함수가 아니며 정의되지 않았습니다. (0) | 2020.08.06 |
pydot 및 graphviz 오류 : dot_parser를 가져올 수 없습니다. 도트 파일을로드 할 수 없습니다 (0) | 2020.08.06 |
패브릭 파일에서 대상 호스트를 설정하는 방법 (0) | 2020.08.06 |