mapply 与 for 循环的语法

Syntax for mapply vs for loop

我的目标是获取一个数据集,1. 对其进行子集化,然后 2. 打印到 .csv 文件

示例数据

library(tidyverse)

mydata <- iris

子集数据的方法:

z <- (split(mydata, (as.numeric(rownames(mydata))-1) %/% 50))
str(z)

我正在尝试使用 mapply,但语法不正确。

mapply(write_csv(z, paste0(z,"file.csv"), col_names = FALSE)

如果我用 for 循环编写代码,我会这样做:

for(i in names(z)){
  write_csv(z[[i]], paste0(i,"file.csv"), col_names = FALSE)
}

我将如何使用 mapply

对于 lapply 这应该有效:

sapply(names(z),function(x){write_csv(z[[x]],paste0(x,"file.csv"), col_names = FALSE))

使用 sapply 它会以这种方式工作

mapply(function(x,y){write_csv(x,paste0(y,"file.csv"), col_names = FALSE)},z,names(z))