【发布时间】:2019-02-04 02:42:46
【问题描述】:
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)
意外的'->'
【问题讨论】:
-
教授的要求有点奇怪,为什么要把sd()函数复制到一个新名字下?有什么解释吗?
-
我猜这只是为了教我们管道。 (renkun-ken.github.io/pipeR-tutorial/Pipe-operator/…) 这里的方法对我不起作用或者我不明白,这是我唯一能找到的分配变量并继续移动的方法。
-
该链接指的是一个单独的包
pipeR,这与人们使用magrittr的标准管道不同。你没有直接在你的问题中指定任何包,你的教授指定了吗? -
最好还是坚持使用 magrittr,但是一旦我安装了 pipeR,它就可以与 "dat %T>% hist() %>>% sd() %>>% (~ std_dev) %>>% round(,3)"
-
前 3 行代码让我们感到困惑。第二行只是将
sd复制到具有新名称的函数中。第三行完全没有意义,因为它试图舍入一个函数,而不是一个数字。我认为@derek-harding 的答案是预期的,尽管我只是省略了对std_dev的分配。