编写脚本以读取具有类似文件名的许多.csv文件

时间:2010-04-07 14:47:21

标签: matlab r

我有几个类似文件名的.csv文件,除了数字月份(即03_data.csv,04_data.csv,05_data.csv等),我想读入R。

我有两个问题:

  • R中是否有类似的功能 MATLAB的varname和assignin 我会创建/声明一个变量名 在一个允许我的函数或循环中 阅读相应的.csv文件 - 即 03_data.csv进入03_data data.frame, 等等。?我想写一个快速循环 这样做是因为文件名是 类似。
  • 作为替代方案,它会更好吗? 用第一个创建一个数据帧 文件,然后使用一个附加其余的 for loop?我该怎么做?

2 个答案:

答案 0 :(得分:6)

您可以查看this related question。您可以使用粘贴命令轻松创建文件名:

file.names <- paste(sprintf("%02d",1:10), "_data.csv", sep="")

获得文件名后(无论是通过创建文件名还是通过从另一个问题中的目录中读取文件名),您可以使用lapply快速导入文件名:

import.list <- lapply(file.names, read.csv)

最后,要将列表合并到一个数据框中,最简单的方法是使用下面的reshape函数:

library(reshape)
data <- merge_recurse(import.list)

答案 1 :(得分:4)

读取目录的内容也非常容易,包括使用正则表达式来跳过专注于某些名称,例如。

filestoread <- list.files(someDir, pattern="\\.csv$", full.names=TRUE)

返回给定目录someDir中以“.csv”结尾的所有(完整格式,包括完整路径)文件。你可以通过更好的正则表达式来获得更好的表达,这些正则表达式在很多地方都有记录。

获得文件列表后,可以直接使用applylapply或循环来阅读这些文件。