参考另一篇文章#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)
但它不起作用。
答案 0 :(得分:2)
您的第二个功能使用逻辑AND
而不是OR
并且支票any(x!=1)
应该有效。
但是,我会将这些函数写成两个独立的函数,并且为了清晰起见,每个函数都要单独检查。