亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過唯一標識符聚合并將相關值連接為字符串

通過唯一標識符聚合并將相關值連接為字符串

開滿天機 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 關注
  • 643 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號