我想指定号码。重复项按它们出现的顺序排列(在R
中)。
示例:
ID DATE
1 xxx
1 xyz
2 xxx
2 xyz
2 acd
我现在想要的是:
ID DATE Instance
1 xxx 1
1 xyz 2
2 xxx 1
2 xyz 2
2 acd 3
任何帮助都应该受到赞赏。
答案 0 :(得分:2)
我希望以下代码可以帮助您走上正轨!
library(tidyverse)
df <- data.frame(id = c(1,1,2,2,2),
date = c("xxx", "xyz", "xxx", "xyz", "acd"))
head(df)
#> id date
#> 1 1 xxx
#> 2 1 xyz
#> 3 2 xxx
#> 4 2 xyz
#> 5 2 acd
df <- df %>%
group_by(id) %>%
mutate(instance = row_number()) %>%
ungroup()
head(df)
#> # A tibble: 5 x 3
#> id date instance
#> <dbl> <fctr> <int>
#> 1 1 xxx 1
#> 2 1 xyz 2
#> 3 2 xxx 1
#> 4 2 xyz 2
#> 5 2 acd 3
答案 1 :(得分:2)
使用base r你可以做类似的事情:
transform(df,x=with(df,ave(id,id,FUN = function(x)1:length(x))))
id date x
1 1 xxx 1
2 1 xyz 2
3 2 xxx 1
4 2 xyz 2
5 2 acd 3