过滤掉R中的列

时间:2013-03-05 17:03:59

标签: r

参考另一篇文章#Filtering out multiple columns in R;有人要求过滤掉所有0的列(列中的所有值都是0)。使用以下代码:

f0 <- function(x) any(x!=0) & is.numeric(x)
trainingdata <- lapply(trainingdata, function(data) cbind(label=data$label, 
                                colwise(identity, f0)(data)))

可以过滤掉仅包含0的列。还需要过滤掉仅包含1的列(我的意思是列中的所有值都是1)。我尝试了以下方法:

f0 <- function(x) all(x==1) | any(x!=0) & is.numeric(x)

OR

f0 <- function(x) all(x!=1) | any(x!=0) & is.numeric(x)

但它不起作用。

1 个答案:

答案 0 :(得分:2)

您的第二个功能使用逻辑AND而不是OR并且支票any(x!=1)应该有效。

但是,我会将这些函数写成两个独立的函数,并且为了清晰起见,每个函数都要单独检查。