我遇到的另一个问题是(我认为)非常有趣:
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
答案 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