识别(或删除)数据框中完全为空的变量列表 (NA)
Identify a list of (or remove) variables in a data frame that are completely empty (NAs)
我有一个非常大的数据框,其中包含许多完全为空 (NA) 的变量。我的目标是删除这些变量。我想排除空变量,而不是缺失值。这似乎是一个非常基本的问题,但我无法弄清楚。
#sample data
A<-rbinom(100,1,1/2)
B<-rbinom(100,1,1/2)
C<-NA
D<-NA
df<-as.data.frame(cbind((1:100),A,B,C,D))
df<-as.data.frame(lapply(df, function(x)
"is.na<-"(x, sample(seq(x), floor(length(x) * runif(1, 0, .2))))))
Hmisc::describe(df)
我可以使用 Hmisc::describe() 列出这些变量,但我不知道如何提取或使用此列表。
试试这个:
df[,!sapply(df,function(x) all(is.na(x)))]
或者,为了更加安全:
df[,!sapply(df,function(x) all(is.na(x))),drop = FALSE]
尝试:
apply(df,2,function(x) sum(!is.na(x)))
所有只有 NA 的变量总和为 0
我有一个非常大的数据框,其中包含许多完全为空 (NA) 的变量。我的目标是删除这些变量。我想排除空变量,而不是缺失值。这似乎是一个非常基本的问题,但我无法弄清楚。
#sample data
A<-rbinom(100,1,1/2)
B<-rbinom(100,1,1/2)
C<-NA
D<-NA
df<-as.data.frame(cbind((1:100),A,B,C,D))
df<-as.data.frame(lapply(df, function(x)
"is.na<-"(x, sample(seq(x), floor(length(x) * runif(1, 0, .2))))))
Hmisc::describe(df)
我可以使用 Hmisc::describe() 列出这些变量,但我不知道如何提取或使用此列表。
试试这个:
df[,!sapply(df,function(x) all(is.na(x)))]
或者,为了更加安全:
df[,!sapply(df,function(x) all(is.na(x))),drop = FALSE]
尝试:
apply(df,2,function(x) sum(!is.na(x)))
所有只有 NA 的变量总和为 0