我一直在尝试使用相同的变量对不同的数据集执行相同的操作 . 我需要能够读取多个csv文件并将它们放在具有相似名称的数据框中(例如:data1,data2等),这样我就可以对它们执行相同的任务 . 目前我正在重写代码集5次,但如果有办法命名并循环其名称并执行这些任务,那就太好了 . 问题是每次执行代码时文件总数不会保持不变 .
这是我到目前为止所尝试的内容,这可能会让我知道我需要做什么 .
filenames <- dir(path="C/.../Files")
for(i in filenames){
ori_data[i] <- read.table(i, header = T, sep = ",", stringsAsFactors=F)
}
当然这会引发错误,因为R无法识别ori_data [i] . 我的文件夹'文件'仅包含需要分析的csv文件 . 文件数可以是1到20之间的任何位置 . 我不知道如何命名这些数据帧 .
任何帮助,将不胜感激 . 谢谢!
3 回答
您可以将文件读入列表 . 将工作目录设置为包含感兴趣文件的文件夹,然后执行以下操作:
如果要查看
ith
数据框,可以输入ori_data[i]
来执行此操作 .您还可以将列表组件命名为:
为了解决're getting, you haven'已经为
ori_data
分配空间的错误,我会假设 . 例如,假设file.txt是由dir()
命名的文件之一,ori_data[i]
最终可能会像ori_data["file.txt"]
. 如果您尚未将ori_data
初始化为数据框或列表,则R将无法执行任何操作 .尝试使用
assign
. 这样的事情对你有用:这是我的方法,但我不能保证它运作良好 . 试一试,让我们知道 . 方法是创建一个空数据框,然后创建一个循环来吃掉目录中的所有cvs,并在文件中存储名称(使用选项
full.names = TRUE
) .之后,您应该有一个名为
data
的唯一文件 . 然后,您可以使用带有dplyr
函数group_by
的split
拆分这些文件 .