gpt4 book ai didi

r - 使用 purrr 应用累积函数

转载 作者:行者123 更新时间:2023-12-04 10:59:58 24 4
gpt4 key购买 nike

对于 x 的每个位置,我想计算有多少数字 > 5。这是我的代码,使用 for 循环:

x<-c(2,8,4,9,10,6,7,3,1,5)

y <- vector()
for (i in seq_along(x)) {
x1 <- x[1:i]
y <- c(y, length(x1[x1>5]))
}
> y
[1] 0 1 1 2 3 4 5 5 5 5

你能帮我用 purrr 来做吗?这里可以使用 purrr::reduce 吗?

最佳答案

您可以使用 purrr 中的 accumulate():

accumulate(x > 5, `+`)
#[1] 0 1 1 2 3 4 5 5 5 5

它基本上是 Reduce() 的包装器,带有 accumulate = TRUE

accumulate <- function(.x, .f, ..., .init) {
.f <- as_function(.f, ...)

f <- function(x, y) {
.f(x, y, ...)
}

Reduce(f, .x, init = .init, accumulate = TRUE)
}

关于r - 使用 purrr 应用累积函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40188948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com