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()
Run Code Online (Sandbox Code Playgroud)
save()取名称的对象(或对象),或者一个符号,不是对象本身(和所得到的文件可以存储多个对象).符号解释很可能在dplyr管道中搞砸了.也许saveRDS()/ readRDS()会做你想要的......?
require(dplyr)
y <- 3
y %>% saveRDS(file = 'y.rds')
rm(y)
readRDS('y.rds') -> y
ls()
Run Code Online (Sandbox Code Playgroud)
(如果我尝试使用deparse(substitute(x))从管道调用的函数,则调用传递的变量"."- 这将无法正常工作......)