带有save()的dplyr管道运算符

Cur*_* F. 2 r dplyr

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)

Ben*_*ker 5

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))从管道调用的函数,则调用传递的变量"."- 这将无法正常工作......)