magrittr 管道未正确传递连接
magittr pipe does not correctly pass a connection
我正在拉入 .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()
没有任何内容加载到全局环境中。为什么会这样?
这是因为在使用 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"
我们一直在填充错误 space。现在让我们再试一次:
rm(list=ls())
"http://www.mosaic-web.org/go/datasets/DCF/MeasTreatTables.rda" %>%
url() %>% load(globalenv())
ls()
# [1] "Measurements" "Treatments"
多田
注意你不能赋值给parent.frame()
,它不会起作用,因为magrittr
是嵌套环境,所以如果你真的想在全局环境之外使用它,它会起作用:
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
我正在拉入 .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()
没有任何内容加载到全局环境中。为什么会这样?
这是因为在使用 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"
我们一直在填充错误 space。现在让我们再试一次:
rm(list=ls())
"http://www.mosaic-web.org/go/datasets/DCF/MeasTreatTables.rda" %>%
url() %>% load(globalenv())
ls()
# [1] "Measurements" "Treatments"
多田
注意你不能赋值给parent.frame()
,它不会起作用,因为magrittr
是嵌套环境,所以如果你真的想在全局环境之外使用它,它会起作用:
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