导入多个文件并为其编制索引

时间:2011-10-20 13:49:41

标签: file r indexing import

我有n个要导入和使用的文件,file_1,file_2,...,file_n。所以我导入这样的文件

files <- list.files(pattern=".txt$") 
for(i in files) { 
    x <- read.table(i, header=TRUE, comment.char = "A", sep="\t")
    assign(i, x)
}

关键是我想同时使用不同文件中的数据。例如,我想计算每个文件的第一列的均值向量:

 meanv = mean(file_1$firstcolumn, file_2$firstcolumn, ..., file_n$firstcolumn).

执行此操作的最合理方法是编写循环遍历所有文件(file_1file_2,...,file_n)。在这种情况下,您需要索引文件。这有什么解决方案吗?还是有其他解决方案。

2 个答案:

答案 0 :(得分:1)

只需使用清单:

##Generate some test data
R> dd1 = data.frame(V1 = rnorm(10), V2 = rnorm(10))
R> dd2 = data.frame(V1 = rnorm(10), V2 = rnorm(10))
#Create an empty list
R> l = list()
##In your example, you would have something like:
##l[[i]] = read.table(....)
R> l[[1]] = dd1; l[[2]] = dd2

##Now use lapply to calculate the column means for each data frame
R> lapply(l, colMeans)
[[1]]
     V1      V2 
-0.6805 -0.0767 

[[2]]
      V1       V2 
0.253563 0.006207 

答案 1 :(得分:1)

这是一种方法

# list files with .txt extension
files  <- list.files(pattern = '\\.txt$')

# read files into a list of tables
tables <- lapply(files, read.table, header = TRUE, comment = 'A', sep = '\t')

# compute mean of first column
meanv <- lapply(tables, colMeans)