r - 使用 data.table,将变量连接成单个变量

标签 r data.table

假设我有以下数据表:

dt <- data.table(a=c("AAA", "BBB", "CCC", "ABC", "CBA", "BAC", "CAB", "AAA", "BBB", "CCC", "ABC", "CBA", "BAC", "CAB"),
                 b=c("One", "Two", "Three", "Four", "Five", "Six"))

它创建:

      a     b
 1: AAA   One
 2: BBB   Two
 3: CCC Three
 4: ABC  Four
 5: CBA  Five
 6: BAC   Six
 7: CAB   One
 8: AAA   Two
 9: BBB Three
10: CCC  Four
11: ABC  Five
12: CBA   Six
13: BAC   One
14: CAB   Two

我想要的是一个新变量 c,用于连接每个 a 中的所有内容,因此它看起来有点像:

      a              c
 1: AAA     "One, Two"
 2: BBB   "Two, Three"
 3: CCC  "Three, Four"
 4: ABC   "Four, Five"
 5: CBA    "Five, Six"
 6: BAC     "Six, One"
 7: CAB     "One, Two"

我认为我在类似的事情上走在正确的轨道上

dt[, .SD[,b], by=a]

返回

      a    V1
 1: AAA   One
 2: AAA   Two
 3: BBB   Two
 4: BBB Three
 5: CCC Three
 6: CCC  Four
 7: ABC  Four
 8: ABC  Five
 9: CBA  Five
10: CBA   Six
11: BAC   Six
12: BAC   One
13: CAB   One
14: CAB   Two

有什么想法吗?谢谢!

最佳答案

你想要这样的东西吗?

dt[,list(c=list(I(b))),by="a"]

     a          c
1: AAA    One,Two
2: BBB  Two,Three
3: CCC Three,Four
4: ABC  Four,Five
5: CBA   Five,Six
6: BAC    Six,One
7: CAB    One,Two

关于r - 使用 data.table,将变量连接成单个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23438489/

相关文章:

r - 如何获取R中执行脚本的目录?

r - 在 IronPython 中使用 R.NET 创建数字向量方法抛出错误

r - 通过向量索引访问 data.table 列?

r - data.table "list"与 ":="处理 NaN

使用 id、时间和具有多个数据变量的一列 reshape R 中的数据框

r - 使用列表作为 dplyr::case_when 的结果时丢失名称

r - 创建累积二项式分布表

r - 将步骤与 data.table 一起使用

r - 跨共享公共(public)列分配 groupid

perl - 根据逗号分隔的字符向量列的值熔化表 (data.frame)