【问题标题】:dplyr pipe operator with save()带有 save() 的 dplyr 管道运算符
【发布时间】:2016-11-21 17:56:02
【问题描述】:

dplyr 管道%>% 语法似乎不适用于save() 函数。当我在下面运行此代码时,只有x 而不是y 被还原为工作区中的变量。为什么?这是一个错误还是我对管道功能的理解不够充分?

require(dplyr)

x <- 2
save(x, file = 'x.rdat')

y <- 3
y %>% save(file = 'y.rdat')

rm(x)
rm(y)

load('x.rdat')
load('y.rdat')

ls()

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    save() 采用对象(或多个对象)或符号的名称,而不是对象本身(生成的文件可以存储多个对象)。符号解释很可能在dplyr 管道中搞砸了。也许saveRDS()/readRDS() 会做你想做的……?

    require(dplyr)
    y <- 3
    y %>% saveRDS(file = 'y.rds')
    rm(y) 
    readRDS('y.rds') -> y
    ls()
    

    (如果我尝试在从管道调用的函数上使用deparse(substitute(x)),则传递的变量称为"." - 这不会很好......)

    【讨论】:

      猜你喜欢
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      相关资源
      最近更新 更多