R 重编码整数序列
从包含一列的data.frame对象开始:R 重编码整数序列,r,dplyr,R,Dplyr,从包含一列的data.frame对象开始: id <- c(1, 1, 1, 2, 3, 3 , 1, 1, 2, 2, 2, 3, 1, 2, 3, 3, 3, 1, 2, 3, 4, 5, 5, 5) id <- as.data.frame(id) 预期结果: 我想重新编码我的价值观 id2 1 1 1 2 3 3
id <- c(1, 1, 1, 2, 3, 3 , 1, 1, 2, 2, 2, 3, 1, 2, 3, 3, 3, 1, 2, 3, 4, 5, 5, 5)
id <- as.data.frame(id)
预期结果:
我想重新编码我的价值观
id2
1
1
1
2
3
3
4
4
5
5
5
6
7
8
9
9
9
10
11
12
13
14
14
14
我正在尝试使用dplyr
r包中的groupby
/ungroup
动词
以下是所考虑的方法:
library(dplyr)
id2 <- id %>%
group_by(id) %>%
mutate id2 = %>% # needing some help !
ungroup %>%
select(2)
库(dplyr)
id2%
分组依据(id)%>%
mutate id2=%>%#需要帮助!
解组%>%
选择(2)
我们可以使用rleid
data.frame(id2 = data.table::rleid(id$id))
或者使用
rle
frombase R
inverse.rle(within.list(rle(id$id), values <- seq_along(values)))
inverse.rle(在.list内(rle(id$id),值很棒。如何保持id列?(id,id2)@Wilcar您可以使用data.frame(id=id$id,id2=data.table:L:rleid(id$id))
inverse.rle(within.list(rle(id$id), values <- seq_along(values)))