gpt4 book ai didi

r - 在 bool 向量中找到*第一个*最长的 TRUE 序列

转载 作者:行者123 更新时间:2023-12-03 16:54:50 25 4
gpt4 key购买 nike

我需要在 bool 向量中找到第一个最长的 TRUE 序列。一些例子:

bool <- c(FALSE, TRUE, FALSE, TRUE)
# should become
c(FALSE, TRUE, FALSE, FALSE)

bool <- c(FALSE, TRUE, FALSE, TRUE, TRUE)
# should become
c(FALSE, FALSE, FALSE, TRUE, TRUE)

bool <- c(FALSE, TRUE, TRUE, FALSE, TRUE, TRUE)
# should become
c(FALSE, TRUE, TRUE, FALSE, FALSE, FALSE)

答案来自 here正确处理我的所有案例,除了上述示例中的第一个。

我该如何改变
with(rle(bool), rep(lengths == max(lengths[values]) & values, lengths))

以便它也处理上面的第一个示例是否正确?

最佳答案

一种选择可能是:

with(rle(bool), rep(seq_along(values) == which.max(lengths * values), lengths))

第一个向量的结果:
[1] FALSE  TRUE FALSE FALSE

对于第二个:
[1] FALSE FALSE FALSE  TRUE  TRUE

对于第三个:
[1] FALSE  TRUE  TRUE FALSE FALSE FALSE

关于r - 在 bool 向量中找到*第一个*最长的 TRUE 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61361567/

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