导入和读取多个文件R.

时间:2012-10-29 12:12:13

标签: r plyr read.table

我有许多制表符分隔的.txt文件,名为“ abcd001.txt,abcd002.txt” ....存储在目录中。 我能够使用以下代码导入它们(默认目录与数据文件目录相同)。它的三列,所有数字类型数据

filenames <- list.files(path=".",pattern="abcd+.*txt")

#list of data in R
names <-substr(filenames,1,6)


for(i in names){
    filepath <- file.path(".",paste(i,".txt",sep=","))
    assign(i, read.table(filepath,
     colClasses=c("numeric"),
    sep = "\t"))
}

代码本身没有返回任何错误。我的疑问是如何访问正在加载的数据?如何访问说文件abcd011.txt的数据应该是三列数据

命令:names [3]只返回文件号000002但没有数据。

此处的代码与此处的代码类似:Read multiple CSV files into separate data frames

1 个答案:

答案 0 :(得分:8)

我建议将read.table的结果放在列表中,或放在一位data.frame中。另外,我建议在这里使用apply样式循环,标准R(lapply)或plyr。我更喜欢使用plyr,所以我的示例将使用该包。一个例子:

## Read into a list of files:
filenames <- list.files(path=".",pattern="abcd+.*txt")
list_of_data = llply(filenames, read.table, 
                                        colClasses = c("numeric"), sep = "\t")

现在可以使用以下方式访问数据:

list_of_data[[1]]
list_of_data[["abcd1.txt"]]

或者您可以将文件的内容读入一个大的data.frame

big_data = ldply(filenames, read.table, 
                             colClasses = c("numeric"), sep = "\t"))

现在可以使用以下方式访问文件内容:

big_data[big_data$variable == "abcd1.txt",]