【发布时间】:2015-10-22 17:33:03
【问题描述】:
我有一个任意数量的行和两列的数据集:a 和 b。我想找到 b 的特定值的 a 值的数量。如果给定下面的数据集,我希望 a1 = 2, a2 = 1 用于 b1 的设定值。
a b
1 1
1 1
2 1
2 2
3 2
3 2
我尝试过的代码:
data[a == 1 & b == 1, list(b = length(b))]
不起作用的代码:
data[a == c(1,2) & b == 1, list(b = length(b))]
如何获取一组 b 值的所有 a 值?
预期数据输出:
b1
a1 2
a2 1
a3 0
etc.
感谢 akrun 的代码:
library(data.table)
table(as.integer(data$a),data$b=='b1')[,2]
确保您的 [,2] 与您的“b”列匹配。
此外,as.integer() 按顺序排列值。
【问题讨论】:
-
试试
library(data.table); setDT(data)[, .N,.(a,b)]好混乱,能不能显示预期的输出? -
@akrun 可能是
setDT(df)[b == 1, .N, by = a]或setDT(df)[b == 1, table(a)] -
顺便说一句,这是
data.table的问题吗? -
@DavidArenburg 帖子中未提及且未标记。
-
我添加了预期的数据输出,但我会尝试你建议的一些事情。请注意,将其称为“a1”,以免混淆。实际上,它只是列表中 a 的值 = "1","2","3" 等。