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()
答案 0 :(得分:5)
save()
获取对象(或多个对象)的名称或符号,而不是对象本身(并且生成的文件可以存储多个对象)。符号解释很可能在dplyr
管道中搞砸了。也许saveRDS()
/ readRDS()
会做你想做的......?
require(dplyr)
y <- 3
y %>% saveRDS(file = 'y.rds')
rm(y)
readRDS('y.rds') -> y
ls()
(如果我尝试deparse(substitute(x))
关于从管道中调用的函数,那么传递的变量称为"."
- 它不会起作用好吧......)