table(df-6ren">
gpt4 book ai didi

r - 如何使用 R 的 data.table 包对键值的否定进行子集化?

转载 作者:行者123 更新时间:2023-12-02 04:48:09 26 4
gpt4 key购买 nike

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 中组 == "a"的所有行。

如果我想要 df1 中的所有行,其中 group != "a"。使用 data.table 是否有简洁的语法?

最佳答案

我想你已经回答了你自己的问题:

> nrow(df1[group != "a"])
[1] 90
> table(df1[group != "a", group])

a b c d e f g h i j
0 10 10 10 10 10 10 10 10 10

我觉得很简洁?

由 MATTHEW 编辑:根据评论,这是一个矢量扫描。有一个成语不加入 herehere , 和 feature request #1384让它变得更容易。

编辑:feature request #1384在data.table 1.8.3中实现

df1[!'a']

# and to avoid the character-to-factor coercion warning in this example (where
# the key column happens to be a factor) :
df1[!J(factor('a'))]

关于r - 如何使用 R 的 data.table 包对键值的否定进行子集化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31122915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com