看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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
cywhale: data.table::rbindlist(YourList,idcol=T) 02/13 17:27
感謝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
cywhale: rbindlist速度很快~ 若資料量大會有幫助~~^^ 02/13 19:51
f496328mm: do.call很不錯 處理list資料 02/13 19:51
f496328mm: 第一次看到 rbindlist 改天試試看 02/13 19:52
clansoda: rbindlist有時候會怪怪的,不讓你pass 這時候rbind.fill 02/13 20:38
clansoda: 以後再setDT可以得到一樣的效果 02/13 20:38