我在尋找一個簡單的函數,將在按時間順序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
我在尋找一個簡單的函數,將在按時間順序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
這裏是一個緊湊的選擇與splitstackshape
library(splitstackshape)
getanID(df1, "Age")[]
或者使用dplyr
library(dplyr)
df1 %>%
group_by(Age) %>%
mutate(Case = row_number())
謝謝,完美的作品! – Microsim
這裏有一種方法:
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
列進行排序,即使是沒有排序。
你可以用'?ave'用'FUN = seq_along' –