是否有使用带有load()管道的“正确”方法?

时间:2018-07-27 02:11:27

标签: r tidyverse magrittr

似乎管道操作员创建了一个临时环境,然后丢弃了加载的数据:

library(magrittr)
"thing.rdata" -> thing
# Nothing happens:
thing %>% load
# Works as expected:
thing %>% load(envir=globalenv())

我不确定使用globalenv()是否是解决此问题的最佳方法,因为我希望保持load(thing)之类的简单内容(确实有效)。

1 个答案:

答案 0 :(得分:1)

一个善良的Reddit用户为我提供了一个包含答案的链接。

我将引用相关部分:

  

在管道上使用assign不起作用,因为它将其分配给   %>%使用的临时环境。如果您确实要使用assign with   管道,您必须明确说明环境:

env <- environment()
"x" %>% assign(100, envir = env)
     

[...]

     

存在此问题的其他功能包括get()load()

来源:http://r4ds.had.co.nz/pipes.html