3 回答

TA貢獻(xiàn)1963條經(jīng)驗 獲得超6個贊
讓我們給你的數(shù)據(jù)打電話。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 = ",")
這會產(chǎn)生同樣的結(jié)果id不是list更多。感謝@Frank的評論。去看class在每一欄中嘗試:
> sapply(result, class)
brand id
"factor" "character"
正如@DavidArenburg在評論中提到的,另一種選擇是使用toString職能:
aggregate(id ~ brand, data = DF, toString)

TA貢獻(xiàn)1813條經(jīng)驗 獲得超2個贊
一條干凈的線條data.table
library(data.table)
setDT(DF)
有兩種選擇:
結(jié)果作為一份清單
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
>
結(jié)果為字符串
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
注
即使這兩個結(jié)果出現(xiàn)同樣的(即當(dāng)您打印它們時,它們看起來是相同的),它們實際上是非常不同的,并且允許不同的功能。
也就是說,使用List選項(第一個選項),您就可以在源文件上執(zhí)行功能。idS.
后者將允許您更容易地顯示信息(包括導(dǎo)出到CSV或excel),但要在id需要把他們接回去。
- 3 回答
- 0 關(guān)注
- 637 瀏覽
添加回答
舉報