2016-04-27 9 views
3

Ich habe ein Dataset und ich möchte die Zeile Position für Gruppe generieren. Zum Beispieldplyr: Erzeuge Zeilennummer/Zeilenposition in group_by

library(data.table) 

data<-data.table(Position=c(1,2,3,4,5,6,7,8,9,10), 
Category=c("M","M","M","M","F","F","F","M","M","F")) 

Ich gruppiere nach der Kategorie und möchte Spalte erstellen, die die Zeilenposition nach Gruppe ist. So etwas wie unten oder mit data.table

dataByGroup %>% group_by(Category) %>% mutate(positionInCategory = 1:nrow(Category)) 

kann nicht herausfinden, wie dies zu erreichen?

gewünschte Ausgabe:

| Position|Category | positionInCategory| 
|--------:|:--------|------------------:| 
|  1|M  |     1| 
|  2|M  |     2| 
|  3|M  |     3| 
|  4|M  |     4| 
|  5|F  |     1| 
|  6|F  |     2| 
|  7|F  |     3| 
|  8|M  |     5| 
|  9|M  |     6| 
|  10|F  |     4| 
+0

In Verbindung stehend: http://Stackoverflow.com/q/35418100/1191259 – Frank

Antwort

10

Versuchen Sie Folgendes:

library(data.table) 
library(dplyr) 

data<-data.table(Position=c(1,2,3,4,5,6,7,8,9,10), 
       Category=c("M","M","M","M","F","F","F","M","M","F")) 

cleanData <- data %>% 
    group_by(Category) %>% 
    mutate(positionInCategory = 1:n()) 
+0

perfekt danke. – iboboboru

+0

@iboboboru: Vergessen Sie nicht, markieren Sie die Antwort, die Sie diese Frage als abgeschlossen markieren möchten. – user1357015

5

Versuchen

data[, new := rowid(Category)] 
# or, if you're using 1.9.6 or older 
data[, new := 1:.N, by=Category] 

    Position Category new 
1:  1  M 1 
2:  2  M 2 
3:  3  M 3 
4:  4  M 4 
5:  5  F 1 
6:  6  F 2 
7:  7  F 3 
8:  8  M 5 
9:  9  M 6 
10:  10  F 4 

rowid nutzen zu können, müssen Sie noch die unstable/devel version of the package benötigen.

+0

Ist seit 1.9.7 nicht "rowid"? – MichaelChirico

+0

@Michael D'oh. Vielen Dank. Sollte ich keine von der devel Version abhängige Antwort posten? – Frank

+2

Nein, es ist in Ordnung, stellen Sie sicher, dass Sie den Vorbehalt und die Referenz für die Installationsanweisungen angeben. – MichaelChirico

Verwandte Themen