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.