Come posso ottenere il numero di righe di un data.frame in R? [chiuso]


157

Dopo aver letto un set di dati:

dataset <- read.csv("forR.csv")
  • Come posso ottenere R per darmi il numero di casi che contiene?
  • Inoltre, il valore restituito includerà i casi di esclusione omessi na.omit(dataset)?

1
Consiglio anche di dare un'occhiata in str()quanto fornisce altri dettagli utili sul tuo oggetto. Può spesso spiegare perché una colonna non si sta comportando come dovrebbe (fattore anziché numerico, ecc.).
Chase

3
Leggere prima la guida R di Owen ( cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf ) e, se possibile, Introduzione a R ( cran.r-project.org/doc/manuals/R- intro.pdf ). Entrambi sono sul sito ufficiale di R. Sei incredibilmente fortunato a ricevere una risposta. Nell'elenco r-help verrai reindirizzato al manuale in termini meno eleganti. Senza offesa.
Joris Meys,

11
@Joris - Punto preso (senza offesa), ma è stata la mia impressione che i siti SE fossero progettati per favorire l'apprendimento di problemi / soluzioni in un modo non consentito dai manuali. Inoltre, questa domanda sarà ora disponibile per altri principianti. Grazie per i collegamenti però.
Tom Wright,

2
Non sono d'accordo con la tua affermazione che questa domanda sarà utile per altri principianti, specialmente se non sfogliano il manuale. Creeranno solo una domanda duplicata.
Joshua Ulrich,

6
E, quattro anni dopo, questo è il secondo successo che ho avuto su Google cercando di trovare una risposta a questa domanda. Non è necessario per me creare un duplicato (@JoshuaUlrich).
Richard, il

Risposte:


173

datasetsarà un frame di dati. Poiché non ho forR.csv, creerò un piccolo frame di dati per l'illustrazione:

set.seed(1)
dataset <- data.frame(A = sample(c(NA, 1:100), 1000, rep = TRUE),
                      B = rnorm(1000))

> head(dataset)
   A           B
1 26  0.07730312
2 37 -0.29686864
3 57 -1.18324224
4 91  0.01129269
5 20  0.99160104
6 90  1.59396745

Per ottenere il numero di casi, contare il numero di righe usando nrow()o NROW():

> nrow(dataset)
[1] 1000
> NROW(dataset)
[1] 1000

Per contare i dati dopo omettendo il NA, utilizzare gli stessi strumenti, ma avvolgere datasetin na.omit():

> NROW(na.omit(dataset))
[1] 993

La differenza tra NROW()e NCOL()e le loro varianti minuscole ( ncol()e nrow()) è che le versioni minuscole funzionano solo per oggetti che hanno dimensioni (matrici, matrici, frame di dati). Le versioni maiuscole funzioneranno con i vettori, che sono trattati come se fossero una matrice a 1 colonna e sono robusti se finisci per sottoporre i tuoi dati in modo tale che R lasci una dimensione vuota.

In alternativa, usa complete.cases()e sumit ( complete.cases()restituisce un vettore logico [ TRUEo FALSE] che indica se ci sono osservazioni NAper qualsiasi riga.

> sum(complete.cases(dataset))
[1] 993

36

Brevemente:

  1. Esegui dim(dataset)per recuperare sia n che k , puoi anche usare nrow(df)e ncol(df)(e anche NROW(df)e NCOL(df)- le varianti sono necessarie anche per altri tipi).

  2. Se trasformi ad es. Via dataset <- na.omit(dataset), i casi scompaiono e non vengono conteggiati. Ma se lo fai, ad esempio, summary(dataset) i casi di NA vengono considerati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.