r - 将 100 个数据帧合并为一个数据帧的函数

我是编程新手,R 是我要学习的第一门编程语言。

我想合并 100 个数据帧;每个数据框包含一列和 20 个观察值,如下所示:

df1 <- as.data.frame(c(6,3,4,4,5,...))
df2 <- as.data.frame(c(2,2,3,5,10,...))
df3 <- as.data.frame(c(5,9,2,3,7,...))
...
df100 <- as.data.frame(c(4,10,5,9,8,...))

我尝试使用 df.list <- list(df1:df100)为所有数据框构建一个整体数据框,但我不确定是否 df.list将所有数据框中的所有列合并到一个表中。

谁能告诉我我说的对不对?我需要做什么?

最佳答案

我们可以使用 mget 将所有对象放入 list 中,方法是在 'ls' 中指定 pattern 来检查对象名称以 'df' 开始 (^) 后跟一个或多个数字 (\\d+) 直到字符串的结尾 ($)

df.list <- mget(ls(pattern = '^df\\d+$'))

list中,如果我们想cbind所有的数据集,在do.call中使用cbind >

out <- do.call(cbind, df.list)

注意:最好不要在全局环境中创建多个对象。我们可以直接将所有数据读入 list 或在 list 中构建,即如果文件是从 .csv 读取的,则获取所有使用 list.files 从感兴趣的目录中提取带有 .csv 的文件,然后循环遍历 lapply 中的文件,使用 单独读取它们read.csvcbind

files <- list.files(path = 'path/to/your/location', 
         pattern = '\\.csv$', full.names = TRUE)
out <- do.call(cbind, lapply(files, read.csv))

https://stackoverflow.com/questions/68146488/

相关文章:

Python - 如何将 ImmutableDict 复制到可变字典?

php - 找不到 Heroku 类 'NumberFormatter'

flutter - 未处理的异常 : type '_InternalLinkedHashMap

arrays - 谷歌表 : How to find the length of array?

android - Room - 模式导出目录未提供给注释处理器,因此我们无法导入模式

rust - 改变 HashMap> 中的向量元素

r - 使用ggsave时遇到 "Error: $ operator is invalid for

algorithm - 如果一个节点等于二叉搜索树中的父节点,我们将它放在哪一边

r - 从类(class)列表中查找当前事件条目

javascript - 我们可以在 formik YupValidationSchema 中添加自