【问题标题】:data preparation part II数据准备第二部分
【发布时间】:2013-08-21 09:47:32
【问题描述】:

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

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

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    不清楚你想如何对待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
    

    【讨论】:

    • 你是对的。 K 和 B 不一定具有与我的示例中的情况相同的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2019-05-24
    • 2021-12-20
    相关资源
    最近更新 更多