我想了解如何从R中的数据框中删除变量(如果它们是一元的,只包含一个值)。我有时拥有包含数千个变量的数据框,我的第一步就是摆脱那些变量(通常是从数据仓库交给我的)。
我知道我可以放弃像
这样的列drops <- c("x","z")
DF[,!(names(DF) %in% drops)]
如下所述: Drop data frame columns by name
但是我想要一些搜索所有变量的方法,并且只删除一元。
答案 0 :(得分:8)
我认为这应该确定一个非常规的&#34;根据你的定义变量:
nonunary <- function(x) length(unique(x))>1
这应该相应地过滤数据框中的变量:
DF[sapply(DF,nonunary)]