2016-04-12 3 views
1
Nummerierung

Ich bin auf der Suche nach einer einfachen Funktion, die Fälle chronologisch durch eine andere Variable in R. Nummer wirdFall von Variable

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

Sie können '? Ave' mit' FUN = seq_along' –

Antwort

0

hier mit splitstackshape

library(splitstackshape) 
getanID(df1, "Age")[] 

Oder mit dplyr

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

Danke, das funktioniert perfekt eine kompakte Option ist! – Microsim

0

Hier ist eine Art und Weise:

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 

Mit order() als Gruppenfunktion stellt sicher, dass die Werte Case entsprechend der Spalte ID geordnet werden, auch wenn sie nicht sortiert sind.