1

我遇到的另一个问题(我认为)非常有趣:

dt <- data.table(K=c("A","A","A","B","B","B"),A=c(2,3,4,1,3,4),B=c(3,3,3,1,1,1))
dt
   K  A  B
1: A  2  3
2: A  3  3
3: A  4  3
4: B  1  1
5: B  3  1
6: B  4  1

现在我想要一个“更高”级别的数据。对于 K 中的每个字母,应该只有一行,并且“A_sum”应该包括 A 的长度,其中 B 具有相同的值。所以 B=3 有三个值,B=1 有三个值。

结果数据表:

dt_new
   K A_sum B
1: A     3 3
2: B     3 1
4

1 回答 1

4

目前尚不清楚您想如何治疗K,但这里有一个选择:

dt_new <- dt[, list(A_sum = length(A)), by = list(K, B)]
#    K B A_sum
# 1: A 3     3
# 2: B 1     3
于 2013-08-21T10:09:22.967 回答