如何根据一定的条件删除列?

我想根据某些条件删除列。

library(data.table)
dt <- data.table(1:4, rep(TRUE, 4), c(TRUE, FALSE, TRUE, TRUE))

在这种情况下,我想删除的列都是 TRUE. 输出应是

 # V1    V3
 #  1  TRUE
 #  2 FALSE
 #  3  TRUE
 #  4  TRUE

解决方案:

您可以使用子集将它们从选择中排除。

dt[,!sapply(dt, function(x) all(x==TRUE)), with=FALSE]

这里的 sapply(dt, function(x) all(x==TRUE)) 部分找到所有值为TRUE的列。然后我们对其进行否定,并使用 with=FALSE (因为这是一个data.table而不是data.frame)

在目前开发的版本中, data.table (2020-04-24),我们可以在 .SDcols:

dt[ , .SD, .SDcols = function(x) !is.logical(x) || !all(x)]

给TA打赏
共{{data.count}}人
人已打赏
未分类

Azure资源组、cpu、dataio、logio移动时不见了。

2022-9-8 18:12:08

未分类

如何在android库的片段内添加Buttons和textView等小部件?

2022-9-8 18:31:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索