Ich habe einen Datenrahmen mit einer Anzahl von Spalten. Ich möchte eine neue Spalte namens "id" erstellen, die jeder Gruppe identischer Werte in der Spalte "sample" eine eindeutige ID-Nummer gibt.Wie man einer Gruppe identischer Werte in einer Spalte eine eindeutige ID-Nummer zuweist
Beispieldaten:
# dput(df)
df <- structure(list(index = 1:30, val = c(14L, 22L, 1L, 25L, 3L, 34L,
35L, 36L, 24L, 35L, 33L, 31L, 30L, 30L, 29L, 28L, 26L, 12L, 41L,
36L, 32L, 37L, 56L, 34L, 23L, 24L, 28L, 22L, 10L, 19L), sample = c(5L,
6L, 6L, 7L, 7L, 7L, 8L, 9L, 10L, 11L, 11L, 12L, 13L, 14L, 14L,
15L, 15L, 15L, 16L, 17L, 18L, 18L, 19L, 19L, 19L, 20L, 21L, 22L,
23L, 23L)), .Names = c("index", "val", "sample"), class = "data.frame",
row.names = c(NA, -30L))
head(df)
index val sample
1 1 14 5
2 2 22 6
3 3 1 6
4 4 25 7
5 5 3 7
6 6 34 7
Was mit Ich möchte am Ende:
index val sample id
1 1 14 5 1
2 2 22 6 2
3 3 1 6 2
4 4 25 7 3
5 5 3 7 3
6 6 34 7 3
Love it: eine Verwendung für ' Faktoren, die ich verstehen kann. :-) –
Nur eine kleine Anmerkung hier: die 'as.numeric (factor (sample))' Methode führt nur zu einer absteigenden Zahlenfolge, wenn 'sample' bereits geordnet ist. –
Das Schöne an der 'factor()' -Lösung ist, dass sie 'NA'-Werte ignoriert –