案例编号按变量编号

时间:2016-04-12 10:14:01

标签: r

我正在寻找一个简单的函数,它将按时间顺序对R中的另一个变量进行编号。

For example:
ID  Age Case
1   30  1
2   30  2
3   30  3
4   31  1
5   31  2
6   32  1
7   32  2

2 个答案:

答案 0 :(得分:0)

以这种方式:

df <- data.frame(ID=c(1L,2L,3L,4L,5L,6L,7L),Age=c(30L,30L,30L,31L,31L,32L,32L));
df$Case <- ave(df$ID,df$Age,FUN=order);
df;
##   ID Age Case
## 1  1  30    1
## 2  2  30    2
## 3  3  30    3
## 4  4  31    1
## 5  5  31    2
## 6  6  32    1
## 7  7  32    2

使用order()作为分组功能可确保Case值根据ID列进行排序,即使它未排序。

答案 1 :(得分:0)

以下是splitstackshape

的紧凑选项
library(splitstackshape)
getanID(df1, "Age")[]

或使用dplyr

library(dplyr)
df1 %>%
     group_by(Age) %>%
     mutate(Case = row_number())