【发布时间】:2013-05-06 17:55:53
【问题描述】:
我有一个包含多个变量的数据集,这些变量只有一个独特的观察结果(例如,对于数据集中的每个观察结果,变量 Language 等于“英语”)。我试图编写一个函数来自动找到这种性质的任何变量并将其从数据框中删除。以下代码有效,但我确信有一种更有效的方法。有什么想法吗?
test.df <- data.frame(var1=rep("a",5), var2=c(rep("a",3),rep("b",2)),
var3=1:5, var4=rep(0,5))
remove.repeat.vars <- function(data) {
one.level.factors <- sapply(data, function(x) ifelse(length(unique(x)) < 2, 1, 0))
one.level.factors <- names(one.level.factors[which(one.level.factors == 1)])
return (data[,-which(names(data) %in% one.level.factors)])
}
remove.repeat.vars(test.df)
【问题讨论】:
标签: r