0

参考另一篇文章#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)

或者

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

但它不工作。

4

1 回答 1

2

您的第二个功能是逻辑AND而不是OR检查any(x!=1)应该可以工作。

但是,为了清楚起见,我会将它们写为两个单独的函数,并独立进行每个检查。

于 2013-03-05T17:14:28.813 回答