如何在循环中读取和使用具有不同名称的数据帧?

时间:2016-11-21 18:56:49

标签: r dplyr lapply

我正在努力解决以下问题:我有许多不同名称的数据框(例如,Beverage,Construction,Electronic等,dim.540x1000)。我需要清理它们中的每一个,计算并保存为zoo对象和R数据文件。清除对于所有这些都是相同的 - 删除空列和具有特定名称的列。

例如:

Beverages <- Beverages[,colSums(is.na(Beverages))<nrow(Beverages)] #removing empty columns
Beverages_OK <- Beverages %>% select (-starts_with ("X.ERROR")) # dropping X.ERROR column
Beverages_OK[, 1] <- NULL #dropping the first column
Beverages_OK <- cbind(data[1], Beverages_OK) # adding a date column
Beverages_zoo <- read.zoo(Beverages_OK, header = FALSE, format = "%Y-%m-%d")
save (Beverages_OK, file = "StatisticsInRFormat/Beverages.RData")

我喜欢使用'lapply'这样的功能:

list <- ls() # the list of all the dataframes
lapply(list, function(X) {
temp <- X
temp <- temp [,colSums(is.na(temp))< nrow(temp)] #removing empty columns
temp <- temp %>% select (-starts_with ("X.ERROR")) # dropping X.ERROR column
temp[, 1] <- NULL
temp <- cbind(data[1], temp)
X_zoo <- read.zoo(X, header = FALSE, format = "%Y-%m-%d") # I don't know how to have the zame name as X has.
save (X, file = "StatisticsInRFormat/X.RData")
})

但它不起作用。有办法做这样的工作吗?是否有任何r-package促进了它?

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您确定环境中只有您需要的数据框,那么这应该可以帮助您入门:

df1 <- mtcars
df2 <- mtcars
df3 <- mtcars
list <- ls()
lapply(list, function(x) {
    tmp <- get(x)

})