我有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_1
,file_2
,...,file_n
)。在这种情况下,您需要索引文件。这有什么解决方案吗?还是有其他解决方案。
答案 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)