R的data.table
包提供基於密鑰的值的快速子集。如何使用R的data.table包對鍵值進行否定?
因此,舉例來說:
set.seed(1342)
df1 <- data.table(group = gl(10, 10, labels = letters[1:10]),
value = sample(1:100))
setkey(df1, group)
df1["a"]
將在DF1其中組== 「是」 返回所有行。
如果我想要df1
其中group != "a"
的所有行怎麼辦?是否有使用data.table
的簡明語法?
但'!='就像'==',即_vector scans_。相反,在[這個問題]中有一個_not join_ idiom(http://stackoverflow.com/questions/7920688/non-joins-with-data-tables)和[這個問題](http://stackoverflow.com/問題/ 7822138 /移植設定的操作,從-RS的數據幀到數據表,如何對識別-DUPL)。那些鏈接到一個功能請求使得非連接語法更容易。在這種情況下,它將是'df1 [ - 「a」]'。非聯接成語應該比矢量掃描更快。 – 2012-04-10 10:52:37
是的,馬特,正如我懷疑的那樣,上述解決方案確實使用了矢量掃描,如果可能的話,我會盡量避免使用矢量掃描。在我的評論中,我仍然注意到速度增長與相似大小的data.frames相比,但我必須研究這是爲什麼。同時,你給了我正確的搜索條件和問題的替代形式,並且你清楚地理解了我所追求的。感謝您在這個偉大的軟件包上所做的所有努力。 – 2012-04-10 21:09:17