在R中多次运行一个函数

时间:2013-10-23 00:02:08

标签: r function csv for-loop

我有* .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次。

2 个答案:

答案 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等更容易。