取消列出保持数据帧名称的数据帧列表

时间:2015-02-16 19:58:37

标签: r

我的工作区有84个数据帧。我无法将它们作为列表导入,因为文件位于不同的文件夹和目录中。

ls() #command gives the names of these 84 dataframes. e.g [1] pav_DJF_histo.csv         

我使用以下方法获取每个数据框的内容:

dat<-mget(ls())

#然后得到每列的平均值

lst4<-lapply(dat,function(x) apply(x[,-c(1)],2,mean))

问题:如何取消列出lst4,使得数据框的名称与

给出的名称相同
 ls()? 

非常感谢您的建议。

注意:我在列表中有84个数据框,有84个不同的名称,但所有数据框都有相同的尺寸。

1 个答案:

答案 0 :(得分:2)

假设您想要列的数据框表示,您可以在所有列均值上调用rbind,然后添加一列标识该行的来源:

# Reproducible setup
iris1.csv <- iris
iris2.csv <- iris
names <- c("iris1.csv", "iris2.csv")
dat <- mget(names)
lst4 <- lapply(dat, function(x) apply(x[,-5], 2, mean))

# Build the new data frame
means <- as.data.frame(do.call(rbind, lst4))
means$source <- names(lst4)
means
#           Sepal.Length Sepal.Width Petal.Length Petal.Width       isv    source
# iris1.csv     5.843333    3.057333        3.758    1.199333 0.3333333 iris1.csv
# iris2.csv     5.843333    3.057333        3.758    1.199333 0.3333333 iris2.csv