【发布时间】:2019-02-03 08:07:25
【问题描述】:
我想使用泛函批量为 csv 数据文件分配名称,我已经测试了包括Map、mapply、lapply 在内的泛函,用函数assign 替换了<-,但是所有这些泛函都可以不起作用,只有传统的 for 循环起作用,有人能解释一下吗?提前致谢!
这是我的代码:
allData <- c("Actinomyces.csv", "Bacteria.csv", "COD.csv", "Fungi.csv", "NH3.csv", "NO2.csv", "NO3.csv", "TN.csv", "TP.csv")
#CSV files in the working path
csvs <- lapply(allData, read.csv)
#Store data frames into a list
nameList <- c("Actinomyces", "Bacteria", "COD", "Fungi", "NH3", "NO2", "NO3", "TN", "TP")
lapply(c(1:9), function(i){assign(nameList[i], csvs[[i]])})
#Doesn't work
Map(assign, nameList, csvs)
#Doesn't work either
mapply(assign, nameList, csvs)
#Doesn't work again
for (i in 1:9){
assign(nameList[i], csvs[[i]])
}
#Only this works
【问题讨论】:
标签: r functional-programming lapply mapply