理解 accumulate 函数的工作原理
Understanding how the accumulate function works
我阅读了使用手册 accumulate
说它是一个 2 参数函数。我不明白给定的例子:
1:5 %>% accumulate(`+`)
#> [1] 1 3 6 10 15
如果accumulate
是一个二元函数,它输出的第一个元素应该是3
吗?因为1+2=3
,为什么第一个元素可以作为输出?
.init
参数决定输出中的第一个值。如果您没有指定任何内容,它 returns 向量的第一个值作为输出中的第一个值(此处为 1)。
来自 ?accumulate
.
.init - If supplied, will be used as the first value to start the accumulation, rather than using .x[[1]].
您可以指定自己的 .init
参数。
library(purrr)
1:5 %>% accumulate(`+`, .init = 3)
#[1] 3 4 6 9 13 18
accumulate
是一个双参数函数,其中第一个参数是一个向量,第二个参数是一个函数。它的输出也是一个与输入长度相同的向量,除非提供 .init
,在这种情况下它将比输入长度大一个长度。
1:5 %>% accumulate(`+`)
#means
accumulate(1:5, `+`)
现在,accumulate
通过在提供的向量的各个元素之间滚动提供的函数来计算输出。由于作为输出的第二个参数提供的 operation
需要两个元素,即 (i) 前一个元素的输出和 (ii) 下一个元素,逻辑上第一次它可以输出输入向量的相同元素而不应用任何操作。
1:5 %>% accumulate(`+`)
#> [1] 1 3 6 10 15
即使提供了 .init
,情况也是一样的,在这种情况下,输出向量的第一个元素将等于提供的 .init
。 (参见 Ronak 的示例)
library(purrr)
1:5 %>% accumulate(`+`, .init = 3)
#[1] 3 4 6 9 13 18
现在检查输出向量中是否有六个元素,尽管输入向量中有五个元素 (1:5)。
您认为给定输出的第一个元素应该是 3
的逻辑是正确的,但在大多数情况下,输出向量的要求与输入向量的长度相同。因此,开发人员可能会考虑在没有任何 operation/application 功能的情况下包含第一个元素。
我阅读了使用手册 accumulate
说它是一个 2 参数函数。我不明白给定的例子:
1:5 %>% accumulate(`+`)
#> [1] 1 3 6 10 15
如果accumulate
是一个二元函数,它输出的第一个元素应该是3
吗?因为1+2=3
,为什么第一个元素可以作为输出?
.init
参数决定输出中的第一个值。如果您没有指定任何内容,它 returns 向量的第一个值作为输出中的第一个值(此处为 1)。
来自 ?accumulate
.
.init - If supplied, will be used as the first value to start the accumulation, rather than using .x[[1]].
您可以指定自己的 .init
参数。
library(purrr)
1:5 %>% accumulate(`+`, .init = 3)
#[1] 3 4 6 9 13 18
accumulate
是一个双参数函数,其中第一个参数是一个向量,第二个参数是一个函数。它的输出也是一个与输入长度相同的向量,除非提供 .init
,在这种情况下它将比输入长度大一个长度。
1:5 %>% accumulate(`+`)
#means
accumulate(1:5, `+`)
现在,accumulate
通过在提供的向量的各个元素之间滚动提供的函数来计算输出。由于作为输出的第二个参数提供的 operation
需要两个元素,即 (i) 前一个元素的输出和 (ii) 下一个元素,逻辑上第一次它可以输出输入向量的相同元素而不应用任何操作。
1:5 %>% accumulate(`+`)
#> [1] 1 3 6 10 15
即使提供了 .init
,情况也是一样的,在这种情况下,输出向量的第一个元素将等于提供的 .init
。 (参见 Ronak 的示例)
library(purrr)
1:5 %>% accumulate(`+`, .init = 3)
#[1] 3 4 6 9 13 18
现在检查输出向量中是否有六个元素,尽管输入向量中有五个元素 (1:5)。
您认为给定输出的第一个元素应该是 3
的逻辑是正确的,但在大多数情况下,输出向量的要求与输入向量的长度相同。因此,开发人员可能会考虑在没有任何 operation/application 功能的情况下包含第一个元素。