Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 我怎样才能把它变成一个循环?_R_Loops - Fatal编程技术网

R 我怎样才能把它变成一个循环?

R 我怎样才能把它变成一个循环?,r,loops,R,Loops,如果不复制/粘贴30次并在第一行和最后一行中将1改为2(改为3,4,5..等等),我如何循环此操作?第一个问题听起来像是目标是一次读取多个数据集,然后使用给定的函数集对其进行迭代。查看“list.files”函数,查看给定目录中的所有文件,以帮助入门。下面是一个小例子,如果我正确理解了主要目标,它可能会帮助你找到一些想法,让你走上正确的道路: library(tidyverse) #setup reproducible example #writes the iris dataframe 3

如果不复制/粘贴30次并在第一行和最后一行中将1改为2(改为3,4,5..等等),我如何循环此操作?

第一个问题听起来像是目标是一次读取多个数据集,然后使用给定的函数集对其进行迭代。查看“list.files”函数,查看给定目录中的所有文件,以帮助入门。下面是一个小例子,如果我正确理解了主要目标,它可能会帮助你找到一些想法,让你走上正确的道路:

library(tidyverse)

#setup reproducible example
#writes the iris dataframe 3 times to desktop
iris_list <- list(iris, iris, iris)
num <- c(1, 2, 3)
filenames <- paste0("~/Desktop/iris", num, ".csv")
purrr::map2(iris_list, filenames, write.csv)


#list.files returns a character vector of all the files in a given directory 
#see ?list.files for more info
iris_files <- list.files("~/Desktop", pattern = "iris", full.names = TRUE)

#with a loop
read_iris_loop <- list()
for(i in seq_along(iris_files)){
  read_iris_loop[[i]] <- read.csv(iris_files[[i]])
}
#or with map/lapply
read_iris <- purrr::map(iris_files, read.csv)

#loop/map over datasets with your functions using these as a template
库(tidyverse)
#设置可复制示例
#将iris数据帧写入桌面3次

iris_list首先创建一个带有文件名的向量:

library(tidyverse)
files_vector <- map_chr(1:30, ~paste0(.x,".sch")) 
如果需要,可以向自定义函数发送参数:

map(files_list, ~ custom_function(.x), ...)
我还建议您在

map(files_list, ~ custom_function(.x))
map(files_list, ~ custom_function(.x), ...)