Supponiamo di avere una lista o un frame di dati in R, e vorrei ottenere l'indice di riga, come faccio? Cioè, mi piacerebbe sapere quante righe contiene una determinata matrice.Come ottenere il numero indice di riga in R?
risposta
Non è chiaro cosa stai provando a fare esattamente.
fare riferimento a una riga in una trama di dati di utilizzare df[row,]
Per ottenere la prima posizione in un vettore di qualcosa utilizzo match(item,vector)
, dove il vettore potrebbe essere una delle colonne della trama di dati, ad esempio df$cname
se la colonna il nome è cname.
Edit:
di combinare questi si può scrivere:
df[match(item,df$cname),]
Nota che la partita ti dà il primo elemento della lista, quindi se non siete alla ricerca di un numero di riferimento unico , potresti voler considerare qualcos'altro.
Questa è una buona risposta a una domanda diversa da quella che credo l'alter ego di @lebesgue sta chiedendo. Se si digita 'head (df)' ci sono titoli su tutte le colonne tranne l'ID della riga. Quindi penso che @lebesgue stia cercando una funzione che permetta l'accesso all'ID di riga (la funzione 'row'). – isomorphismes
Sto interpretando la tua domanda per ottenere numeri di riga.
- Puoi provare
as.numeric(rownames(df))
se non hai impostato i nomi dei giocatori. Altrimenti usa una sequenza di1:nrow(df)
. - La funzione
which()
converte un indice di riga TRUE/FALSE in numeri di riga.
Questo è quello che faccio anch'io, poiché i nomi di riga DF, anche se sono numerici, non corrispondono necessariamente all'indice riga: 'row (cars [34:50,]) [, 1]; as.integer (rownames (auto [34:50,])) '. Perchè usi 'as.numeric()' qui? Non avrebbe più senso usare 'as.integer()'? – naught101
Se ho capito la tua domanda, si vuole solo essere in grado di accedere agli elementi in un frame di dati (o lista) per riga:
x = matrix(ceiling(9*runif(20)), nrow=5 )
colnames(x) = c("col1", "col2", "col3", "col4")
df = data.frame(x) # create a small data frame
df[1,] # get the first row
df[3,] # get the third row
df[nrow(df),] # get the last row
lf = as.list(df)
lf[[1]] # get first row
lf[[3]] # get third row
ecc
Vedi row
in ?base::row
. Questo fornisce gli indici di riga per qualsiasi oggetto simile alla matrice.
La domanda è ancora molto poco chiara. – reinierpost
Penso che sia perché si tratta di due domande: la seconda frase è ciò che @BenBolker ha risposto 'nrow (x)' (cioè dando le * dimensioni * del frame dati). La prima frase riguarda l'ottenimento di numeri di riga, a cui Shane ha risposto (e nullo1 migliorato) 'as.integer (rownames (x))' –