定義我下面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',這是最簡單的:http://stackoverflow.com/q/24833247/1191259 – Frank
@Frank,你真的花時間閱讀那個鏈接的問題? :-) – A5C1D2H2I1M1N2O1R2T1
@AnandaMahto並不完全,但超過了我應該擁有的:)我有一種感覺,這是一個愚蠢的行爲,但我喜歡這個問答比任何一個都好。這是我自己的問題在同一件事情:http://stackoverflow.com/q/19276194/1191259我想每個人都問過這個問題。 – Frank