【发布时间】:2015-04-29 18:03:02
【问题描述】:
我有以下data.table
structure(list(val1 = c(1, 2, 1, 3, 4, 5, 3), val2 = c(4, 5, 6, 4, 2, 4, 5)), .Names = c("val1", "val2"), row.names = c(NA, -7L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0xedae28>)
我想做的是根据其他变量定义的标准过滤其中的行。例如,我可能想要所有具有val1 >= 1 的行。这很容易做到
x[val1 > 1,]
但是,我希望能够将列名(即val1 或val2)指定为变量,并将过滤器值指定为变量。我试过了
cname = 'val1'
cutoff = 1
x[(cname >= cutoff),] # Try 1
x[(cname) >= (cutoff),] # Try 2
x[eval(cname > cutoff),] # Try 3
但它只是归还了原来的data.table。
【问题讨论】:
-
相关问题列表,虽然所有答案都超长和/或不要使用
get,最简单的是:stackoverflow.com/q/24833247/1191259 -
@Frank,你真的花时间阅读了那个链接的问题吗? :-)
-
@AnandaMahto 不完全是,但比我应该拥有的更多:) 我觉得这是一个骗局,但我比任何一个都更喜欢这个问答。这是我自己关于同一件事的问题:stackoverflow.com/q/19276194/1191259 我想每个人都曾在某个时候问过这个问题。
标签: r data.table subset