我有一个非常大的数据框,其中有许多完全为空的变量(NAs)。我的目标是删除这些变量。我想排除空变量,而不是缺少值。这似乎是一个非常基本的问题,但我无法弄明白。
#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()创建这些变量的列表,但我无法弄清楚如何提取或使用此列表。
答案 0 :(得分:2)
试试这个:
df[,!sapply(df,function(x) all(is.na(x)))]
或者,为了更加安全:
df[,!sapply(df,function(x) all(is.na(x))),drop = FALSE]
答案 1 :(得分:1)
尝试:
apply(df,2,function(x) sum(!is.na(x)))
只有NA的所有变量都有0