为了账号安全,请及时绑定邮箱和手机立即绑定

通过唯一标识符聚合并将相关值连接为字符串

通过唯一标识符聚合并将相关值连接为字符串

开满天机 2019-06-09 16:57:43
通过唯一标识符聚合并将相关值连接为字符串我有一种我认为可以满足的需要aggregate或reshape但我不太明白。我有一张名单brand),以及随附的ID号(id)。这个数据是长形式的,所以名称可以有多个ID。我想用这个名字(brand)并将多个可能的连接起来。id用注释分隔成字符串。例如:brand            id RadioShack       2308Rag & Bone       4466Ragu             1830Ragu             4518Ralph Lauren     1638Ralph Lauren     2719Ralph Lauren     2720Ralph Lauren     2721Ralph Lauren     2722 应成为:RadioShack       2308Rag & Bone       4466Ragu             1830,4518Ralph Lauren     1638,2719,2720,2721,2722我怎样才能做到这一点?
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

让我们给你的数据打电话。DF


> aggregate(id ~ brand, data = DF, c)

         brand                           id

1   RadioShack                         2308

2   Rag & Bone                         4466

3         Ragu                   1830, 4518

4 Ralph Lauren 1638, 2719, 2720, 2721, 2722

另一种选择aggregate是:


result <- aggregate(id ~ brand, data = DF, paste, collapse = ",")

这会产生同样的结果id不是list更多。感谢@Frank的评论。去看class在每一栏中尝试:


> sapply(result, class)

      brand          id 

   "factor" "character"

正如@DavidArenburg在评论中提到的,另一种选择是使用toString职能:


aggregate(id ~ brand, data = DF, toString)


查看完整回答
反对 回复 2019-06-09
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

一条干净的线条data.table


library(data.table)

setDT(DF)

有两种选择:

结果作为一份清单


DF[ , .(id = list(id)), by = brand]

          brand                       id

1:   RadioShack                     2308

2:   Rag & Bone                     4466

3:         Ragu                1830,4518

4: Ralph Lauren 1638,2719,2720,2721,2722

结果为字符串


DF[ , .(id = paste(id, collapse=",")), by = brand]

          brand                       id

1:   RadioShack                     2308

2:   Rag & Bone                     4466

3:         Ragu                1830,4518

4: Ralph Lauren 1638,2719,2720,2721,2722

即使这两个结果出现同样的(即当您打印它们时,它们看起来是相同的),它们实际上是非常不同的,并且允许不同的功能。


也就是说,使用List选项(第一个选项),您就可以在源文件上执行功能。idS.


后者将允许您更容易地显示信息(包括导出到CSV或excel),但要在id需要把他们接回去。


查看完整回答
反对 回复 2019-06-09
  • 3 回答
  • 0 关注
  • 619 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信