gpt4 book ai didi

r - 为非零值的运行创建组 ID

转载 作者:行者123 更新时间:2023-12-04 13:15:47 24 4
gpt4 key购买 nike

我想在向量中找到连续运行的非零元素(由至少一个零分隔),并为每个组(后续整数)分配一个 ID。
玩具矢量:value <- c(1, 1, 2, 3, 4, 3, 0, 0, 0, 1, 2, 3, 9, 8, 0, 0, 3, 2)在这个例子中,有三个非零值的运行:[1,1,2,3,4,3], [1,2,3,9,8], [3,2],由块分隔一个或多个零。
每个非零运行应具有唯一 ID:1、2、3...零运行应具有 NA作为身份证:

   value id
1 1 1
2 1 1
3 2 1
4 3 1
5 4 1
6 3 1
7 0 NA
8 0 NA
9 0 NA
10 1 2
11 2 2
12 3 2
13 9 2
14 8 2
15 0 NA
16 0 NA
17 3 3
18 2 3

最佳答案

你可以试试:

as.integer(factor(cumsum(value==0)*NA^(value==0)))
#[1] 1 1 1 1 1 1 NA NA NA 2 2 2 2 2 NA NA 3 3

关于r - 为非零值的运行创建组 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43149779/

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