【发布时间】:2019-07-15 20:53:24
【问题描述】:
我一直在寻找很多答案,但我仍然无法完全理解它们。例如,最清晰的(here),以及其他(1,2,3)给出了关于点的各种用途的具体示例,但我无法理解,例如它的应用在这里:
car_data <-
mtcars %>%
subset(hp > 100) %>%
aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2)) %>%
transform(kpl = mpg %>% multiply_by(0.4251)) %>%
print
#result:
cyl mpg disp hp drat wt qsec vs am gear carb kpl
1 4 25.90 108.0 111.0 3.94 2.15 17.75 1.00 1.00 4.50 2.00 11.010
2 6 19.74 183.3 122.3 3.59 3.12 17.98 0.57 0.43 3.86 3.43 8.391
3 8 15.10 353.1 209.2 3.23 4.00 16.77 0.00 0.14 3.29 3.50 6.419
上面的代码来自explanation for %>% in magrittr,我也在尝试理解管道运算符(我知道它给了你之前计算的结果,但是我在aggregate 代码行中迷路了它将. 和%>% 混合在同一个函数中。
所以,我不明白上面的代码是做什么的。我有结果(我把它放在上面)。但我不明白它是如何达到这个结果的,特别是aggregate 代码行,它使用点和~ 符号。我知道~ 的意思是“所有其他变量”,但是这个点是什么意思?它有其他含义或应用吗?以及特定函数中的管道运算符是什么?
【问题讨论】:
-
我认为这里令人困惑的是
.在aggregate调用的公式中的不同用法以及它在magrittr包中的用法。每?formula:“在公式中有两种特殊的解释。通常的解释是在模型拟合函数的数据参数的上下文中,意思是'公式中没有的所有列':见terms.formula。在update.formula 的上下文,只是,它的意思是'以前在这部分公式中的内容'。"