作者locka (locka)
看板R_Language
标题[问题] list dataframe的处理
时间Mon Feb 13 16:13:29 2017
[问题类型]:
程式谘询(我想用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1486973612.A.A9D.html
※ 编辑: locka (140.112.110.191), 02/13/2017 16:14:47
1F:推 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
2F:推 cywhale: rbindlist速度很快~ 若资料量大会有帮助~~^^ 02/13 19:51
3F:推 f496328mm: do.call很不错 处理list资料 02/13 19:51
4F:→ f496328mm: 第一次看到 rbindlist 改天试试看 02/13 19:52
5F:→ clansoda: rbindlist有时候会怪怪的,不让你pass 这时候rbind.fill 02/13 20:38
6F:→ clansoda: 以後再setDT可以得到一样的效果 02/13 20:38