[問題] list dataframe的處理

看板R_Language作者 (locka)時間8年前 (2017/02/13 16:13), 8年前編輯推噓3(303)
留言6則, 3人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 版上前輩午安, 我有一個list,每個element都是不同實驗方案得到的結果(存成data frame) [[1]] n count avg 1 1 16 9.17 2 2 77 10.21 3 3 159 9.12 ... [[2]] n count avg 1 1 16 8.85 2 2 93 9.07 ... [[3]] n count avg ... 為了要比較每種方案的avg 並用ggplot2做圖 我想要把這個list 合併成一個像下面這樣的data frame n count avg approach 1 16 9.17 A 2 77 10.21 A 3 159 9.12 A ... 1 16 8.85 B 2 93 9.07 B ... 所以基本上我想做的事情是把5個data frame合起來並新增一個欄位來辨別不同的方案 不過我對用apply function操作list還不是很熟悉 請教各位前輩了! 範例資料貼在這邊 http://ideone.com/5QfenH [關鍵字]: data frame, list, apply funtion -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.110.191 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1486973612.A.A9D.html ※ 編輯: locka (140.112.110.191), 02/13/2017 16:14:47

02/13 17:27, , 1F
data.table::rbindlist(YourList,idcol=T)
02/13 17:27, 1F
感謝cywhale大大, 我是自己後來也有試出以下的寫法: lapply(1:length(mylist),function(x){mylist[[x]] %>% mutate(approach=x)}) %>% do.call("rbind",.) 沒想到data.table竟然有rbindlist這個函式可以用,也太方便了吧...wow 多學到一招了,非常感謝!! ※ 編輯: locka (140.112.110.191), 02/13/2017 18:00:28

02/13 19:51, , 2F
rbindlist速度很快~ 若資料量大會有幫助~~^^
02/13 19:51, 2F

02/13 19:51, , 3F
do.call很不錯 處理list資料
02/13 19:51, 3F

02/13 19:52, , 4F
第一次看到 rbindlist 改天試試看
02/13 19:52, 4F

02/13 20:38, , 5F
rbindlist有時候會怪怪的,不讓你pass 這時候rbind.fill
02/13 20:38, 5F

02/13 20:38, , 6F
以後再setDT可以得到一樣的效果
02/13 20:38, 6F
文章代碼(AID): #1OeMgigT (R_Language)
文章代碼(AID): #1OeMgigT (R_Language)