我有一个包含数据帧名称列表的数据帧(这里是dfToc).我想使用它来指定要通过tidyverse命令BIND_ROWS连接的其他数据帧.如果我在BIND_ROWS命令中显式命名其他数据帧,则串联起作用,但如果我使用dfToc指定其他数据帧则不起作用.它看起来很初级,但我被难住了.下面是一个简化的例子.

library(tidyverse)

df1 <- data.frame(Name = c("Jon", "Bill", "Maria", "Ben", "Tina"),
                  Score = c(23, 41, 32, 58, 26))

df2 <- data.frame(Name = c("Jon", "Bill", "Maria", "Ben", "Tina"),
                  Score = c(32, 14, 23, 85, 62))

dfToc <- data.frame(fn = c('df1' , 'df2'))
dfToc$fn
#> [1] "df1" "df2"

# explicitly naming the dataframes works
bind_rows(list(df1 , df2))
#>     Name Score
#> 1    Jon    23
#> 2   Bill    41
#> 3  Maria    32
#> 4    Ben    58
#> 5   Tina    26
#> 6    Jon    32
#> 7   Bill    14
#> 8  Maria    23
#> 9    Ben    85
#> 10  Tina    62

# using dfToc to specify the dataframes results in an error
bind_rows(list(dfToc$fn))
#> Error in `bind_rows()`:
#> ! Argument 1 must be a data frame or a named atomic vector.
#> Backtrace:
#>     ▆
#>  1. └─dplyr::bind_rows(list(dfToc$fn))
#>  2.   └─rlang::abort(glue("Argument {i} must be a data frame or a named atomic vector."))

谢谢你的帮助!

推荐答案

dfToc$fn是表示数据帧名称的字符向量.它是not个数据帧列表,这正是bind_rows所需要的.要使用这些对象的名称将多个对象从您的工作区添加到列表中,我们可以使用mget:

bind_rows(mget(dfToc$fn))
#>     Name Score
#> 1    Jon    23
#> 2   Bill    41
#> 3  Maria    32
#> 4    Ben    58
#> 5   Tina    26
#> 6    Jon    32
#> 7   Bill    14
#> 8  Maria    23
#> 9    Ben    85
#> 10  Tina    62

R相关问答推荐

extract()函数不处理stanfit对象,我用错了吗?

如何使用R以NASAGIBS.ViirsEarthAtNight2012风格绘制自定义 map

如何生成包含可能条目列表而不是计数的表?

删除facet_wrap标签之间的水平线

大规模重新标记haven标签数据

R for循环返回到先前值

如何在emmeans中计算连续变量的对比度

bslib::card_header中的shine::downloadButton,图标而不是文本

R-更新面内部的栅格值

如何将SAS数据集的列名和列标签同时包含在r中GT表的表首?

R-按最接近午夜的时间进行筛选

R -在先前group_by级别汇总时获取最大大小子组的计数

如何移除GGPlot中超出与面相交的任何格网像元

如何使用前缀作为匹配来连接数据帧?

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

使用R将简单的JSON解析为嵌套框架

为什么这个表格格罗布不打印?

如何使用字符串从重复的模式中提取多个数字?

使用geom_sf跨越日期线时的闭合边界

使用ggplot2绘制具有边缘分布的坡度图