R data.table使用max in i语句

时间:2015-11-17 22:58:28

标签: r data.table

这应该是如此简单,但由于某种原因data.table没有做我期望的事情。我想连续取最多两个值来确定是否应该过滤一行。似乎正在发生的事情是max()函数正在查看整个列,这不是我想要的。这是代码:

0:1

这就是我的期望:

> test_dt <- data.table(value1 = 1:10, value2 = 2:11, value3 = 3:12)
> test_dt[max(value1, value2, value3) < 7]
Empty data.table (0 rows) of 3 cols: value1,value2,value3

我在这里做错了什么?这应该是微不足道的,但我似乎缺少一些关键的东西。

1 个答案:

答案 0 :(得分:2)

您想要并行最大值,或pmax。有关详细信息,请参阅?max

test_dt[pmax(value1, value2, value3) < 7]
#    value1 value2 value3
# 1:      1      2      3
# 2:      2      3      4
# 3:      3      4      5
# 4:      4      5      6

如果您真的想要速度,可以再次使用pmax.int,请参阅?max了解详情。