【发布时间】:2019-06-20 13:07:27
【问题描述】:
我想使用 data.table 从以下数据集中收集信息。
set.seed(1)
TDT <- data.table(nr= c(1:100),Group = c(rep("A",10),rep("B",10),rep("C",10),rep("D",10),rep("E",10),rep("F",10),rep("G",10),rep("H",10),rep("I",10),rep("J",10)),
id = c(rep(1,20),rep(2,20),rep(3,20),rep(4,20),rep(5,20)),
Time = rep(seq(as.Date("2010-01-03"), length=20, by="1 month") - 1,5),
norm = round(runif(100)/10,2),
y = sample(100,100),
x2 = round(rnorm(100,0.75,0.3),2),
x3 = round(rnorm(100,0.75,0.3),2),
x4 = round(rnorm(100,0.75,0.3),2),
x5 = round(rnorm(100,0.75,0.3),2))
vars <- c("B", "C", "D")
我想获取以下条件适用的行:
组是 A & y >= 50 并且 var(B、C 或 D)的任何值都有 y >= 50。
但我无法正确使用语法。任何想法如何实现这些双重条件?类似的东西
X <- TDT[(Group=="A" & y>=50)&(Group==vars & y>=50)]
编辑:我需要第二个条件来适用于 B OR C OR D。不是 AND。
【问题讨论】:
-
预期输出是什么?尝试语法并没有说明这一点。例如,
id不能等于'A',因为它是数字。 -
对不起,你们是对的!已更正。
-
我有点搞砸了这个问题。我编辑了它。希望现在更清楚了。
-
关于您的编辑:正如@IceCreamToucan 所提到的,预期的输出会非常有帮助。
-
我认为对问题所做的编辑澄清了 OP 的意图。我认为它应该退出“暂停”状态......
标签: r data.table conditional-statements subset