2017-12-06 1 views
0

Ich möchte auf den Zeilenindex einer Teilmenge eines Datenrahmens in R zugreifen, aber ich war nicht in der Lage, einen Weg zu finden, auf die Informationen zuzugreifen. Zum Beispiel hatte, wenn ich den Datenrahmen:Erhalte den Index von der Teilmenge in R

a <- c(1, 2, 3, 4, 5) 
b <- c(2, 3, 4, 5, 6) 
c <- data.frame(a, b) 

Und ich greifen die zweite Reihe:

d <- c[2,] 

Wenn ich d drucke ich bekommen:

print(d) 
    a b 
2 2 3 

Also gehe ich davon aus, dass R irgendwie speichert die Zeile, die d im ursprünglichen Datenrahmen war! Aber wenn ich gehe:

str(d) 
'data.frame': 1 obs. of 2 variables: 
$ a: num 2 
$ b: num 3 

Ich kann nicht sehen, wo die 2 (für die Zeile) gespeichert ist. Gibt es eine Möglichkeit, auf diesen Wert zuzugreifen?

Und ja, mir ist bewusst, dass ich in diesem Beispiel bereits die Zeilennummer aus Subsetting habe. Meistens bin ich jedoch logisch untergliedert, und auf jeden Fall möchte ich vermeiden, den Zeilenindex separat zu finden und ihn auch an eine Funktion zu übergeben.

+0

'rownames (d)' sollte funktionieren. Beachten Sie, dass die Rückgabe immer 'character' ist, daher können' dat [1,] 'und' dat ["1",] in einigen (extremen) Beispielen andere Ergebnisse liefern. – r2evans

Antwort

1
a <- c(1, 2, 3, 4, 5) 
b <- c(2, 3, 4, 5, 6) 
c <- data.frame(a, b) 
d <- c[2,] 
rownames(d) # "2"; class(rownames(d)) = "character" 
as.numeric(rownames(d)) # 2; class(as.numeric(rownames(d))) = "numeric" 
+0

Danke, ich habe nie bemerkt, dass der Zeilenindex automatisch als Zeilenname gespeichert wird! –