r - 我可以在 R 中写入和访问内存中的文件吗?

标签 r

我正在为导入 xml 文件的 R 函数编写测试,settings.xml .

目前,当我为依赖于 foo.xml 内容的函数编写测试时,包括函数 read.settings在以下示例中:

writeLines("<fee><fi><\fi>\fee>", con = "/tmp/foo.xml")
settings <- read.settings("/tmp/foo.xml")
file.remove("/tmp/foo.xml")

但是出现了许多与使测试系统独立相关的问题。例如,/tmp/可能不可写或 read.settings() 中的错误在 test 目录中留下一个孤立文件,等等。这是一个微不足道的例子,我可以想出解决这些问题的方法,但我记得在上一个问题的答案中提供了这样的解决方案,我现在找不到,其中con不是文件而是内存中的对象。我确信在很多情况下不实际写入文件会很有用。
  • 有没有办法写入和访问只存在于内存中的伪文件?
  • 该功能在哪里记录??connections似乎是一个很好的线索,但我不清楚如何使用提供的信息

  • 作为跟进(但不要太开放)
  • 除了我上面描述的之外,这种功能的主要用途是什么?
  • 在哪些情况下不应使用此功能?
  • 最佳答案

    这是一个可能有用的构造。 tempfile()返回任何操作系统上临时文件的有效名称,并调用 on.exit(unlink())确保临时文件被删除,无论发生什么。

    test1 <- function() {
        temp <- tempfile()
        on.exit(unlink(temp))
        writeLines("<fee><fi><\fi>\fee>", con = temp)
        settings <- readLines(temp)
        settings
    }
    
    test1()
    # [1] "<fee><fi><\fi>\fee>"
    

    关于r - 我可以在 R 中写入和访问内存中的文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940343/

    相关文章:

    json - 如何在 R 中导入 json 文件以及如何在 csv 中转换它?

    r - 将同一表中的两列合并为一列

    r - 创建一个不包含重复整数的所有九位数字的矩阵

    r - parse_aws_s3_response 错误,禁止 (http 403)

    r - 如何在 R 中排列嵌套数据(即带父项的数据)?

    r - reshape 数据框的问题

    R biglm 与分类变量

    r - 从 matlab 在 R 中绘制数据

    r - 无法运行插入符号 xgboost 分类

    r - 我怎样才能在 dplyr 中进行变异而不丢失顺序?