数据准备第二部分

时间:2013-08-21 09:47:33

标签: r data.table

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

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有三个值。

产生的data.table:

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

1 个答案:

答案 0 :(得分: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