Wie erhalte ich die Anzahl der Zeilen eines data.frame in R? [geschlossen]

157

Nach dem Lesen eines Datensatzes:

dataset <- read.csv("forR.csv")
  • Wie kann ich R veranlassen, mir die Anzahl der darin enthaltenen Fälle mitzuteilen?
  • Wird der zurückgegebene Wert auch Ausschlussfälle enthalten, die mit weggelassen wurden na.omit(dataset)?
Tom Wright
quelle
1
Ich empfehle auch einen Blick darauf zu werfen, str()da es weitere nützliche Details zu Ihrem Objekt enthält. Kann oft erklären, warum sich eine Spalte nicht wie gewünscht verhält (Faktor anstelle von numerisch usw.).
Chase
3
Bitte lesen Sie zuerst den R-Leitfaden von Owen ( cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf ) und nach Möglichkeit die Einführung in R ( cran.r-project.org/doc/manuals/R- intro.pdf ). Beide sind auf der offiziellen Website von R. Sie haben unglaublich viel Glück, dass Sie tatsächlich eine Antwort bekommen. Auf der r-Hilfe-Liste würde man Sie in weniger eleganten Begriffen zum Handbuch weiterleiten. Nichts für ungut.
Joris Meys
11
@Joris - Punkt (ohne Beleidigung), aber ich hatte den Eindruck, dass SE-Sites so gestaltet sind, dass sie das Problem- / Lösungslernen fördern, wie es Handbücher nicht bieten. Diese Frage steht jetzt auch anderen Anfängern zur Verfügung. Vielen Dank für die Links.
Tom Wright
2
Ich bin mit Ihrer Behauptung nicht einverstanden, dass diese Frage für andere Anfänger hilfreich ist, insbesondere wenn sie das Handbuch nicht überfliegen. Sie werden nur eine doppelte Frage erstellen.
Joshua Ulrich
6
Und vier Jahre später war dies der zweite Treffer bei Google, der versuchte, eine Antwort auf diese Frage zu finden. Ich muss kein Duplikat erstellen (@JoshuaUlrich).
Richard

Antworten:

173

datasetwird ein Datenrahmen sein. Da ich keine habe forR.csv, erstelle ich einen kleinen Datenrahmen zur Veranschaulichung:

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

Um die Anzahl der Fälle zu ermitteln, zählen Sie die Anzahl der Zeilen mit nrow()oder NROW():

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

Um die Daten nach dem Weglassen von zu zählen NA, verwenden Sie dieselben Tools, aber wickeln Sie Folgendes datasetein na.omit():

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

Der Unterschied zwischen NROW()und NCOL()und ihren Kleinbuchstaben ( ncol()und nrow()) besteht darin, dass die Kleinbuchstaben nur für Objekte mit Dimensionen (Arrays, Matrizen, Datenrahmen) funktionieren. Die Großbuchstaben funktionieren mit Vektoren, die so behandelt werden, als wären sie eine Einspaltenmatrix. Sie sind robust, wenn Sie Ihre Daten so unterteilen, dass R eine leere Dimension löscht.

Alternativ können Sie auch complete.cases()and sumit (verwenden, complete.cases()um einen logischen Vektor [ TRUEoder FALSE] zurückzugeben, der angibt, ob Beobachtungen NAfür Zeilen vorliegen.

> sum(complete.cases(dataset))
[1] 993
Gavin Simpson
quelle
36

Kurz:

  1. Führen Sie diesen Befehl aus dim(dataset), um sowohl n als auch k abzurufen. Sie können auch nrow(df)und verwenden ncol(df)(und sogar NROW(df)und NCOL(df)- Varianten werden auch für andere Typen benötigt).

  2. Wenn Sie z. B. über transformieren dataset <- na.omit(dataset), sind die Fälle verschwunden und werden nicht gezählt. Aber wenn Sie dies tun, werden zB summary(dataset) die NA-Fälle berücksichtigt.

Dirk Eddelbüttel
quelle