gpt4 book ai didi

r - 使用向量化函数计算向量中连续零的最大数量

转载 作者:行者123 更新时间:2023-12-05 02:47:52 24 4
gpt4 key购买 nike

我想构建一个函数,它将一个向量作为参数并返回最大数量的连续零。例如:

a <- c(0,0,1,1,0)
b <- c(0,1,3,10,0,0,0)
x <- count_max_consecutive_zeros(a)
y <- count_max_consecutive_zeros(b)

应该导致 x=2 和 y=3。我可以寻求明显的解决方案并进行循环:

count_max_consecutive_zeros <- function(x) {
max_count <- 0
current_count <- 0
for (i in 1:length(x) {
if(x[i] == 0) {
current_count = current_count + 1
} else {
if(current_count > max_count) {
max_count <- current_count
}
current_count <- 0
}
}

此解决方案适用于短向量,但我必须在数万个条目长的向量上使用此函数数千次,所以我担心会遇到性能问题。是否有等效于 count_max_consecutive_zeros 的矢量化函数?

最佳答案

您可以使用 rlemax计算连续零的最大数量

x <- rle(a==0)
max(x$lengths[x$values == TRUE])
#[1] 2

关于r - 使用向量化函数计算向量中连续零的最大数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64755407/

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