我有* .csv格式的100个数据集,名称相同但索引不同:myarray1,myarray2,...,myarray100。 我写了一个函数来读取这些数据集并做一些事情,但我不想运行该函数100次。这是功能的主要部分:
Myfunc <- function(file){
setwd("C:\\Users\\Desktop\\mydaya")
data.temp1 <- read.csv("C:\\Users\\Desktop\\mydata\\myarray1.csv",header=FALSE)
.......
#core of function
.....
}
是否可以以某种方式编写一个for循环来运行函数本身100次并同时在函数内的第三个命令行中更改“myarray ...”的索引:
中的myarray1 data.temp <- read.csv("C:\\Users\\Desktop\\mydata\\myarray1.csv",header=FALSE)
在第二次运行中变为myarray2,依此类推,最多100次。
答案 0 :(得分:5)
您确定不是read.csv(file, header=FALSE)
吗?
然后你就可以做到
lapply(paste0("myarray", 1:100, ".csv"), Myfunc)
答案 1 :(得分:1)
我认为使用这样的变量名称不是一个好主意。您将更好地将数据存储在列表中。我建议遵循方法
setwd("C:\\Users\\Desktop\\mydata")
files <- dir(pattern = 'myarray.*\\.csv')
dataList <- lapply(files, FUN = Myfunc )
然后你可以使用dataList [[1]],dataList [[2]]等来引用各种数据帧。使用list比使用变量列表data.temp1,data.temp2等更容易。