我正在try 将模拟的测试数据写入一个临时目录.我将不得不编写大量文件,并且我想用purrr包中的函数来编写循环,因为它们似乎具有简洁的设计语法.但是我不能让purrr::pwalkgo 工作吗?我做错了什么?

library(data.table)
library(purrr)

# define temporary directory
pp <- withr::local_tempdir()

# define function to write simulated files
f <-
  function(.x,.y) {
    dt <- data.table(country = .x, school_id = 1:2, school_type = c("a","b"))
    fwrite(dt, withr::local_tempfile(pattern = paste0("school.",.x), tmpdir = .y))
  }
# deploy function to write two files
purrr::walk2(.x = c("at","de"), .y = pp, .f = f)

# why no files in pp?
list.files(pp)

我引用了以下内容:

https://www.tidyverse.org/blog/2023/05/purrr-walk-this-way/

https://adv-r.hadley.nz/functionals.html?q=purrr#purrr-style

推荐答案

withr::local_tempfile为我们提供了完整的路径,而不仅仅是文件名.因此,该函数按预期工作,它只是写入另一个临时文件夹(由local_tempfile创建,而不是您分配给pp的那个).

library(data.table)
library(purrr)

pp <- withr::local_tempdir()

fw <- function(.x, .y) {
    dt <- data.table(country = .x, school_id = 1:2, school_type = c("a","b"))
    fwrite(dt, paste(.y, paste0("school.", .x), sep = "/"))
  }

purrr::walk2(.x = c("a","b"), .y = pp, .f = fw)

list.files(pp)
#> [1] "school.a" "school.b"

创建于2024-02-15,第reprex v2.0.2

R相关问答推荐

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

无法将传奇添加到cowplot多情节中

R:连接值,而不是变量?

从开始时间和结束时间导出时间

RStudio中相关数据的分组箱形图

如何优化向量的以下条件赋值?

如何使用STAT_SUMMARY向ggplot2中的密度图添加垂直线

使用R闪光显示所有数据点作为默认设置

比较理论阿尔法和经验阿尔法

从多个线性回归模型中提取系数

从多个可选列中选取一个值到一个新列中

根据约束随机填充向量的元素

当每个变量值只能 Select 一次时,如何从数据框中 Select 两个变量的组合?

如何将这个小列表转换为数据帧?

为什么在写入CSV文件时Purrr::Pwalk不起作用

仅当后续值与特定值匹配时,才在列中回填Nas

如何预测原始数据集并将值添加到原始数据集中

数据集上的R循环和存储模型系数

Data.table::Shift type=允许扩展数据(&Q;LAG&Q;)

如何修改Rust中的R字符串并将其赋给新的R变量,并使用extendr保留原始R字符串