似乎管道操作员创建了一个临时环境,然后丢弃了加载的数据:
library(magrittr)
"thing.rdata" -> thing
# Nothing happens:
thing %>% load
# Works as expected:
thing %>% load(envir=globalenv())
我不确定使用globalenv()
是否是解决此问题的最佳方法,因为我希望保持load(thing)
之类的简单内容(确实有效)。
答案 0 :(得分:1)
一个善良的Reddit用户为我提供了一个包含答案的链接。
我将引用相关部分:
在管道上使用assign不起作用,因为它将其分配给 %>%使用的临时环境。如果您确实要使用assign with 管道,您必须明确说明环境:
env <- environment() "x" %>% assign(100, envir = env)
[...]
存在此问题的其他功能包括
get()
和load()
。