在R中删除一元变量

Ale*_*der 2 r

我想了解如何从R中的数据框中删除变量(如果它们是一元的,只包含一个值).我有时拥有包含数千个变量的数据框,我的第一步就是摆脱那些变量(通常是从数据仓库交给我的).

我明白我可以删除列

drops <- c("x","z")
DF[,!(names(DF) %in% drops)]
Run Code Online (Sandbox Code Playgroud)

如下所述: 按名称删除数据框列

但是我想要一些搜索所有变量的方法,并且只删除一元变量.

Ben*_*ker 8

我认为这应该根据你的定义确定一个"非常数"变量:

nonunary <- function(x) length(unique(x))>1
Run Code Online (Sandbox Code Playgroud)

这应该相应地过滤数据框中的变量:

DF[sapply(DF,nonunary)]
Run Code Online (Sandbox Code Playgroud)