Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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
使用purrr:map从当前工作目录中的列表写入xlsx文件_R_Purrr_Writexl - Fatal编程技术网

使用purrr:map从当前工作目录中的列表写入xlsx文件

使用purrr:map从当前工作目录中的列表写入xlsx文件,r,purrr,writexl,R,Purrr,Writexl,我正在尝试使用purrr::map从当前工作空间的列表中编写excel文件。我想使用每个列表的名称作为excel文件名(例如:name_1.xlsx,name_2.xlsx)。我如何让purrr:map来做这件事 library(tidyverse) library(writexl) l2 <- list( tibble(x = 1:5, y = 1, z = x ^ 2 + y), tibble(x = 2:6, y = 3, z = x ^ 2 + y) ) names

我正在尝试使用purrr::map从当前工作空间的列表中编写excel文件。我想使用每个列表的名称作为excel文件名(例如:name_1.xlsx,name_2.xlsx)。我如何让purrr:map来做这件事

library(tidyverse)
library(writexl)

l2 <- list(
  tibble(x = 1:5, y = 1, z = x ^ 2 + y),
  tibble(x = 2:6, y = 3, z = x ^ 2 + y)
  )

names(l2) <- c("name_1", "name_2")

我认为您需要
map2
来提供
l2
名称(l2)
,以
写入xlsx
。这里,
.x
指的是
l2
.y
指的是
名称(l2)

编辑:您还可以使用
walk2
pmap
&
pwalk

walk2(l2, names(l2), ~ write_xlsx(.x, path = str_c(.y, ".xlsx")))

# ..1 refers to l2 & ..2 refers to names(l2)
pmap(list(l2, names(l2)), ~ write_xlsx(..1, path = str_c(..2, ".xlsx")))

pwalk(list(l2, names(l2)), ~ write_xlsx(..1, path = str_c(..2, ".xlsx")))

请具体说明哪些不起作用。我猜你应该在你的
中有
而不是
l2
我认为使用
iwalk
/
imap
(为了方便起见)或
walk2
/
map2
和列表的名称可能是你需要的。为了节省一些输入,你也可以使用
imap(l2,~write_xlsx(.x,path=paste0(.y,“.xlsx”))
这是
map2(l2,names(l2),~write_xlsx(.x,path=paste0(.y,.xlsx”))的快捷方式。
map2(l2, names(l2), ~ write_xlsx(.x, path = str_c(.y, ".xlsx")))

$`name_1`
[1] "name_1.xlsx"

$name_2
[1] "name_2.xlsx"
walk2(l2, names(l2), ~ write_xlsx(.x, path = str_c(.y, ".xlsx")))

# ..1 refers to l2 & ..2 refers to names(l2)
pmap(list(l2, names(l2)), ~ write_xlsx(..1, path = str_c(..2, ".xlsx")))

pwalk(list(l2, names(l2)), ~ write_xlsx(..1, path = str_c(..2, ".xlsx")))