hist(dat)
std_dev <- sd()
round(std_dev,3)
我的教授希望我们使用管道将其放在一行代码中,但是,分配std_dev <- sd()
并继续存在问题。
尝试:
dat %T>% hist() %>% sd() %>% .->std_dev %>% round(.,3)
。(。)中的错误:找不到函数“。”
dat %T>% hist() %>% sd() %>% ~(.->std_dev) %>% round(,3)
不向std_dev分配任何内容。
dat %T>% hist() %>% sd() %>% =std_dev %>% round(,3)
意外=
dat %T>% hist() %>% sd() %>% ->std_dev %>% round(,3)
意外的'->'
答案 0 :(得分:1)
你很近。
dat%T>%hist()%>%sd()%>%round(。,3)-> std_dev
但是,在现实世界中不要这样做。不太可读。
答案 1 :(得分:0)
一种产生副作用的可能方法是使用assign
,它虽然比较冗长,但可以在第一个块中按预期工作。
library(magrittr)
dat %T>%
hist() %T>%
{assign(x = "std_dev", value = sd, envir = .GlobalEnv)} %>%
std_dev() %>%
round(3)
使用%T>%
,直到需要处理数据为止。此外,请确保使用assign
分配给适当的环境。
这也仅使用magrittr软件包中可用的管道。
注意:由于您提供的初始代码块存在疑问,因此可能需要进行更改-没有数据传递到round()
函数中,而是传递给您从现有函数分配的函数中sd()
。