我有一个数据框列表
my_list <- list(structure(c("23000 Vs 23500", "23500 Vs 24000", "1.03546847852537",
"0.735744771309744", "15", "29"), .Dim = 2:3, .Dimnames = list(
NULL, c("Group", "EffectSize", "RequiredReplicates"))), structure(c("23500 Vs 24000",
"24000 Vs 25000", "25000 Vs 25500", "0.735744771309744", "1.48620682621918",
"0.418877850096638", "29", "7", "89"), .Dim = c(3L, 3L), .Dimnames = list(
NULL, c("Group", "EffectSize", "RequiredReplicates"))), structure(c("26000 Vs 26500",
"26500 Vs 27000", "27000 Vs 27500", "0.0739021800199834", "0.14116830704947",
"0.135704984161555", "2874", "788", "852"), .Dim = c(3L, 3L), .Dimnames = list(
NULL, c("Group", "EffectSize", "RequiredReplicates"))))
names(my_list) <- paste0("tt", 1:3)
我想要的是添加一个带有数据框名称的新列grp
,然后将它们全部绑定成一个数据框。
lapply(
my_list,
function(x) {
x$grp <- deparse(substitute(x))
rbind(x)
}
)
我想要的结果:
Group EffectSize RequiredReplicates grp
"23000 Vs 23500" "1.03546847852537" "15" tt1
"23500 Vs 24000" "0.735744771309744" "29" tt1
"23500 Vs 24000" "0.735744771309744" "29" tt2
"24000 Vs 25000" "1.48620682621918" "7" tt2
"25000 Vs 25500" "0.418877850096638" "89" tt2
"26000 Vs 26500" "0.0739021800199834" "2874" tt3
"26500 Vs 27000" "0.14116830704947" "788" tt3
"27000 Vs 27500" "0.135704984161555" "852 tt3
感谢您的帮助!
答案 0 :(得分:1)
1)data.table 将每个组件转换为data.table,然后将rbindlist
与idcol
参数一起使用。
library(data.table)
my_list_nms <- setNames(my_list, paste0("tt", seq_along(my_list)))
rbindlist(lapply(my_list_nms, as.data.table), idcol = "id")
提供此数据表。
id Group EffectSize RequiredReplicates
1: tt1 23000 Vs 23500 1.03546847852537 15
2: tt1 23500 Vs 24000 0.735744771309744 29
3: tt2 23500 Vs 24000 0.735744771309744 29
4: tt2 24000 Vs 25000 1.48620682621918 7
5: tt2 25000 Vs 25500 0.418877850096638 89
6: tt3 26000 Vs 26500 0.0739021800199834 2874
7: tt3 26500 Vs 27000 0.14116830704947 788
8: tt3 27000 Vs 27500 0.135704984161555 852
2)purrr 也可以使用purrr并进行点滴。 my_list_nms
来自上方。
library(purrr)
library(tibble)
map_dfr(my_list_nms, as_data_frame, .id = "id")
给出这个小标题:
# A tibble: 8 x 4
id Group EffectSize RequiredReplicates
<chr> <chr> <chr> <chr>
1 tt1 23000 Vs 23500 1.03546847852537 15
2 tt1 23500 Vs 24000 0.735744771309744 29
3 tt2 23500 Vs 24000 0.735744771309744 29
4 tt2 24000 Vs 25000 1.48620682621918 7
5 tt2 25000 Vs 25500 0.418877850096638 89
6 tt3 26000 Vs 26500 0.0739021800199834 2874
7 tt3 26500 Vs 27000 0.14116830704947 788
8 tt3 27000 Vs 27500 0.135704984161555 852