我拉入.rda
文件并加载数据。它的工作原理如下:
library(magrittr)
conn <- "http://www.mosaic-web.org/go/datasets/DCF/MeasTreatTables.rda"
%>% url()
load(conn)
但是当我在整个过程中使用管道时:
"http://www.mosaic-web.org/go/datasets/DCF/MeasTreatTables.rda" %>%
url() %>%
load()
没有任何内容加载到全局环境中。为什么会这样?
答案 0 :(得分:2)
这是因为在使用magrittr
命令链时,您并未在全球环境中运行。
让我们运行您的命令,但以同样的方式返回环境:
library(magrittr)
rm(list=ls())
parallel_universe <- "http://www.mosaic-web.org/go/datasets/DCF/MeasTreatTables.rda" %>%
url() %>%
{load(.);environment()}
现在让我们探讨这些环境:
ls()
#[1] "parallel_universe"
ls(parallel_universe)
#[1] "Measurements" "Treatments"
我们一直在填补错误的空间。现在让我们再试一次:
rm(list=ls())
"http://www.mosaic-web.org/go/datasets/DCF/MeasTreatTables.rda" %>%
url() %>% load(globalenv())
ls()
# [1] "Measurements" "Treatments"
多田
请注意,您无法分配到parent.frame()
,因为magrittr
是嵌套环境,因此它不起作用,所以如果您真的想在全局环境之外使用它,那么这将有效: / p>
my_env <- environment()
"http://www.mosaic-web.org/go/datasets/DCF/MeasTreatTables.rda" %>%
url() %>% load(my_env)
另请参阅:Assigning to temp variables inside of `maggritr` command chain