基于名称有条件地将rbind或bind_行应用于列表
给出如下所示的data.frame列表:基于名称有条件地将rbind或bind_行应用于列表,r,R,给出如下所示的data.frame列表: list_dfs[1]“a”“b”“a”“c” 如何通过列表中data.frame的名称应用函数?具体地说,我想rbind将本例中称为a的data.frames绑定在一起,这样生成的列表只有三个元素。如果我把它们都绑起来,我会这样做: do.call(rbind,list\u dfs) #>rbind(deparse.level,…)中出错:参数的列数不匹配 显然,这是行不通的。如果列不匹配,则此操作不起作用 list\u mtcars我们可以使用b
list_dfs[1]“a”“b”“a”“c”
如何通过列表中data.frame的名称应用函数?具体地说,我想rbind
将本例中称为a
的data.frames绑定在一起,这样生成的列表只有三个元素。如果我把它们都绑起来,我会这样做:
do.call(rbind,list\u dfs)
#>rbind(deparse.level,…)中出错:参数的列数不匹配
显然,这是行不通的。如果列不匹配,则此操作不起作用
list\u mtcars我们可以使用bind\u rows
将list
按列表的名称进行拆分
library(dplyr)
library(purrr)
split(list_dfs, names(list_dfs)) %>%
map(bind_rows)
或在base R
lapply(split(list_dfs, names(list_dfs)), function(dat) do.call(rbind, unname(dat)))
我可能解释不清楚。这将绑定列表中的每个元素。我只想绑定那些同名的。永远忘记拆分!谢谢