神不在的星期二
让我们给你的数据打电话。DF> aggregate(id ~ brand, data = DF, c) brand id1 RadioShack 23082 Rag & Bone 44663 Ragu 1830, 45184 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)
慕姐8265434
一条干净的线条data.tablelibrary(data.table)setDT(DF)有两种选择:结果作为一份清单DF[ , .(id = list(id)), by = brand] brand id1: RadioShack 23082: Rag & Bone 44663: Ragu 1830,45184: Ralph Lauren 1638,2719,2720,2721,2722> 结果为字符串DF[ , .(id = paste(id, collapse=",")), by = brand] brand id1: RadioShack 23082: Rag & Bone 44663: Ragu 1830,45184: Ralph Lauren 1638,2719,2720,2721,2722注即使这两个结果出现同样的(即当您打印它们时,它们看起来是相同的),它们实际上是非常不同的,并且允许不同的功能。也就是说,使用List选项(第一个选项),您就可以在源文件上执行功能。idS.后者将允许您更容易地显示信息(包括导出到CSV或excel),但要在id需要把他们接回去。