将数据写入临时文件,文件名存储在 R 环境中

Write data to a temporary file with filename stored in an R environment

我有一些数据想写入 R 中的临时 CSV 文件。

用户可以选择指定他们选择的文件名,该文件名存储在与 .GlobalEnv

分开的环境(称为 'envr')中
if (!is.null(envr$filename)) {
    write.csv(df, file = paste(envr$filename, ".csv", sep = ""))
  }

为了成功完成此操作,我需要创建一个临时文件,分配给用户选择的文件名。

if (!is.null(envr$filename)) {
    file.name <- get("filename", envir = envr)
    tempfile(fileext = ".csv")
    write.csv(df, file = file.name)

}

上面的 if 语句并没有完成这项工作,因为 CSV 文件没有保存在 $TMPDIR 中。

如何轻松地将 tempfile() 集成到上面的第一个 if 语句中,而不必将其分配给变量名 (file.name)?

您可以将文件名(从 filename 环境变量获得)与会话的临时文件夹(使用 tempdir())连同 .csv 扩展名连接起来,因为如下:

if (!is.null(envr$filename)) {
  write.csv(df, file = paste0(tempdir(), "/", get("filename", envir = envr), ".csv"))
}

如果它回答了您的问题或您是否需要任何进一步的帮助,请告诉我。