【发布时间】:2019-06-02 01:12:39
【问题描述】:
我猜这是两个问题的结合。
我试图理解purrr::accumulate 函数,但很难弄清楚.x 和.y 之间的相互作用。我一直在阅读purrr 小插图,但并没有解释太多。我没有编程背景,所以很多事情都在我的脑海中。
首先,为什么它们在同一个调用时会有不同的输出?唯一的区别是() 在paste 之后。
accumulate(letters[1:5], paste, sep = ".")
[1] "a" "a.b" "a.b.c" "a.b.c.d" "a.b.c.d.e"
accumulate(letters[1:5], paste(), sep = ".")
[1] "a" "a" "a" "a" "a"
第二,这里是怎么回事?
2:11 %>% accumulate(~ .x)
[1] 2 2 2 2 2 2 2 2 2 2
accumulate(1:5, `+`)
[1] 1 3 6 10 15
2:11 %>% accumulate(~ .y)
[1] 2 3 4 5 6 7 8 9 10 11
2:11 %>% accumulate(~ .x + .y)
[1] 2 5 9 14 20 27 35 44 54 65
.x 是累积值,但我猜它没有累积任何东西? 1:5 和 cumsum 一样有意义。 .y 是列表中的元素。我将.y 解释为本质上是print 是否正确?
但是.x + .y 的第一个输出不是4吗?
欢迎提供一些见解。
【问题讨论】:
-
在第一种情况下,您只使用
.x、cumsum(2:11)# [1] 2 5 9 14 20 27 35 44 54 65。所以,不清楚为什么不应该是一样的