CSV 파일의 데이터 프레임이 있습니다. 데이터 프레임 DF
에는 관찰 된 값이 포함 된 열과 VaR2
측정이 수행 된 날짜가 포함 된 열 ( )이 있습니다. 날짜가 기록되지 않은 경우 CSV 파일에는 NA
누락 된 데이터에 대한 값이 포함 됩니다.
Var1 Var2
10 2010/01/01
20 NA
30 2010/03/01
하위 집합 명령을 사용 하여 열 ( ) new_DF
의 NA'
값 이있는 행만 포함 하도록 새 데이터 프레임을 정의하려고 VaR2
합니다. 주어진 예에서 행 2 만 새 DF
.
명령
new_DF<-subset(DF,DF$Var2=="NA")
작동하지 않으면 결과 데이터 프레임에 행 항목이 없습니다.
원본 CSV 파일에서 값 NA
이와 교환되는 NULL
경우 동일한 명령이 원하는 결과를 생성합니다 new_DF<-subset(DF,DF$Var2=="NULL")
..
문자열의 값 NA
이 원본 CSV 파일에 제공된 경우이 방법을 어떻게 작동시킬 수 있습니까?
답변
결 측값을 테스트하기 위해 == ‘NA’를 사용하지 마십시오. is.na()
대신 사용하십시오 . 이렇게해야합니다.
new_DF <- DF[rowSums(is.na(DF)) > 0,]
또는 특정 열을 확인하려는 경우에도 사용할 수 있습니다.
new_DF <- DF[is.na(DF$Var),]
NA 문자 값이있는 경우 먼저 실행하십시오.
Df[Df=='NA'] <- NA
결 측값으로 대체합니다.
답변
NA는 R의 특수 값입니다. NA 값을 “NA”문자열과 혼동하지 마십시오. 데이터를 가져온 방법에 따라 “NA”및 “NULL”셀의 유형이 다양 할 수 있습니다 (기본 동작은 “NA”문자열을 NA 값으로 변환하고 “NULL”문자열을 그대로 두는 것입니다).
read.table () 또는 read.csv ()를 사용하는 경우 깨끗한 데이터 가져 오기를 수행하기 위해 “na.strings”인수를 고려해야하며 항상 실제 R NA 값으로 작업해야합니다.
예, “NULL”및 “NA”셀 모두에서 작업 :
DF <- read.csv("file.csv", na.strings=c("NA", "NULL"))
new_DF <- subset(DF, is.na(DF$Var2))
답변
complete.cases
제공 TRUE
행의 모든 값이 없을 때NA
DF[!complete.cases(DF), ]
답변
new_data <- data %>% filter_all(any_vars(is.na(.)))
이렇게 new_data
하면 누락 된 값만 있는 새 데이터 프레임 ( ) 이 생성 됩니다.
누락 된 관측치 (NA)가있는 일부 열이 있기 때문에 나중에 삭제할 수있는 값을 추적하는 것이 가장 좋습니다.
답변
이것을 변경하십시오 :
new_DF<-dplyr::filter(DF,is.na(Var2))
답변
NA 데이터가있는 모든 행을 인쇄합니다.
tmp <- data.frame(c(1,2,3),c(4,NA,5));
tmp[round(which(is.na(tmp))/ncol(tmp)),]