我正在努力解决以下问题:我有许多不同名称的数据框(例如,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促进了它?
非常感谢。
答案 0 :(得分:1)
如果您确定环境中只有您需要的数据框,那么这应该可以帮助您入门:
df1 <- mtcars
df2 <- mtcars
df3 <- mtcars
list <- ls()
lapply(list, function(x) {
tmp <- get(x)
})