【发布时间】:2020-02-20 17:00:59
【问题描述】:
R中的data.table包语法中是否有以下代码的等效版本?
以下代码行在 mtcars 数据集中过滤出不包含集合 (4,6) 中的 cyl 值的行
在 dplyr 中,此代码如下所示:
mtcars %>% filter(!(cyl %in% c(4,6)))
在 data.table 中是否有一个等效的语法来执行一个嵌套的 %in% 操作!不是运算符来过滤表中的行?
您可以通过以下代码运行示例:
library(tidyverse)
mtcars %>% filter(!(cyl %in% c(4,6)))
【问题讨论】:
-
似乎是一个未解决的问题:github.com/Rdatatable/data.table/issues/4152
-
@MrFlick 该死的 - 不认为这是一个未解决的问题,甚至不存在!我想我可能会等待 - 或者只是转换回 tibble 然后 data.table
-
as.data.table(mtcars)[!cyl %in% c(4,6),]为我工作,我错过了什么吗? -
另外,
%in%不是 dplyr 函数。这是一个基本的R函数。它应该仍然可以在 data.table 中工作。 -
我坚决不同意。会同意搜索可能有点令人困惑,但这只是因为 SO 搜索的点击率很高:
[r] [subset] [data.table]。 (超过 200 次点击)还使用带有?subset的帮助系统(加载了 data.table 包,或help(subset, pack=data.table)
标签: r dplyr data.table