gpt4 book ai didi

r - 将 ID 分配给连续的组列 r

转载 作者:行者123 更新时间:2023-12-05 09:07:47 26 4
gpt4 key购买 nike

我想在 data.frame 中生成一个列来计算组的连续 id(虚拟 df 中的 s 列)

dummy_df = data.frame(s = c("a", "a", "b","b", "b", "c","c", "a", "a", "c", "c","a","a"),
desired_output= c(1,1,1,1,1,1,1,2,2,2,2,3,3))
dummy_df$rleid_output = rleid(dummy_df$s)
dummy_df
   s desired_output rleid_output
1 a 1 1
2 a 1 1
3 b 1 2
4 b 1 2
5 b 1 2
6 c 1 3
7 c 1 3
8 a 2 4
9 a 2 4
10 c 2 5
11 c 2 5
12 a 3 6
13 a 3 6

我会说它类似于 rleid() 所做的,但在看到新组时重新开始计数。但是,我找不到以如此直接的方式做到这一点的方法。谢谢。

最佳答案

你可以这样做:

dummy_df$out <- with(rle(dummy_df$s), rep(ave(lengths, values, FUN = seq_along), lengths))

结果:

   s desired_output out
1 a 1 1
2 a 1 1
3 b 1 1
4 b 1 1
5 b 1 1
6 c 1 1
7 c 1 1
8 a 2 2
9 a 2 2
10 c 2 2
11 c 2 2
12 a 3 3
13 a 3 3

关于r - 将 ID 分配给连续的组列 r,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64388125/

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