Je recommande également de jeter un coup d'oeil str()car il fournit d'autres détails utiles sur votre objet. Peut souvent expliquer pourquoi une colonne ne se comporte pas comme il se doit (facteur au lieu de numérique, etc.).
Chase
3
Veuillez tout d’abord lire le guide R de Owen ( cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf ) et, si possible, l’introduction à R ( cran.r-project.org/doc/manuals/R- intro.pdf ). Les deux sont sur le site officiel de R. Vous êtes incroyablement chanceux d'avoir obtenu une réponse. Sur la liste de ré-aide, on vous redirigerait vers le manuel en des termes moins élégants. Aucune infraction signifiait.
Joris Meys
11
@Joris - Point pris (sans offense), mais j’ai eu l’impression que les sites SE ont été conçus pour favoriser l’apprentissage par problèmes / solutions d’une manière qui n’était pas offerte par les manuels. De plus, cette question sera désormais disponible pour les autres débutants. Merci pour les liens.
Tom Wright
2
Je ne suis pas d’accord avec votre affirmation selon laquelle cette question sera utile aux autres débutants, surtout s’ils n’écriment pas le manuel. Ils vont juste créer une question en double.
Joshua Ulrich
6
Et, quatre ans plus tard, c’est la deuxième fois que Google essaie de trouver une réponse à cette question. Pas besoin de créer un duplicata (@JoshuaUlrich).
Richard
Réponses:
174
datasetsera un cadre de données. Comme je n'ai pas forR.csv, je vais créer un petit bloc de données pour l'illustration:
set.seed(1)
dataset <- data.frame(A = sample(c(NA,1:100),1000, rep = TRUE),
B = rnorm(1000))> head(dataset)
A B1260.07730312237-0.29686864357-1.183242244910.011292695200.991601046901.59396745
Pour obtenir le nombre d'observations, comptez le nombre de lignes en utilisant nrow()ou NROW():
> nrow(dataset)[1]1000> NROW(dataset)[1]1000
Pour compter les données après avoir omis le NA, utilisez les mêmes outils, mais envelopper datasetdans na.omit():
> NROW(na.omit(dataset))[1]993
La différence entre NROW()et NCOL()et leurs variantes minuscules ( ncol()et nrow()) est que les versions minuscules ne fonctionnent que pour les objets ayant des dimensions (tableaux, matrices, blocs de données). Les versions majuscules fonctionnent avec des vecteurs, qui sont traités comme s'il s'agissait d'une matrice à 1 colonne et qui sont robustes si vous finissez par sous-définir vos données, de sorte que R supprime une dimension vide.
Alternativement, use complete.cases()et sumit ( complete.cases()retourne un vecteur logique [ TRUEou FALSE] indiquant si les observations NAconcernent des lignes.
Exécuter dim(dataset)pour récupérer à la fois n et k , vous pouvez également utiliser nrow(df)et ncol(df)(et même NROW(df)et NCOL(df)- des variantes sont également nécessaires pour les autres types).
Si vous transformez par exemple via dataset <- na.omit(dataset), alors les cas sont partis et ne sont pas comptés. Mais si vous le faites, par exemple,summary(dataset) les cas de NA sont pris en compte.
str()
car il fournit d'autres détails utiles sur votre objet. Peut souvent expliquer pourquoi une colonne ne se comporte pas comme il se doit (facteur au lieu de numérique, etc.).Réponses:
dataset
sera un cadre de données. Comme je n'ai pasforR.csv
, je vais créer un petit bloc de données pour l'illustration:Pour obtenir le nombre d'observations, comptez le nombre de lignes en utilisant
nrow()
ouNROW()
:Pour compter les données après avoir omis le
NA
, utilisez les mêmes outils, mais envelopperdataset
dansna.omit()
:La différence entre
NROW()
etNCOL()
et leurs variantes minuscules (ncol()
etnrow()
) est que les versions minuscules ne fonctionnent que pour les objets ayant des dimensions (tableaux, matrices, blocs de données). Les versions majuscules fonctionnent avec des vecteurs, qui sont traités comme s'il s'agissait d'une matrice à 1 colonne et qui sont robustes si vous finissez par sous-définir vos données, de sorte que R supprime une dimension vide.Alternativement, use
complete.cases()
etsum
it (complete.cases()
retourne un vecteur logique [TRUE
ouFALSE
] indiquant si les observationsNA
concernent des lignes.la source
Brièvement:
Exécuter
dim(dataset)
pour récupérer à la fois n et k , vous pouvez également utilisernrow(df)
etncol(df)
(et mêmeNROW(df)
etNCOL(df)
- des variantes sont également nécessaires pour les autres types).Si vous transformez par exemple via
dataset <- na.omit(dataset)
, alors les cas sont partis et ne sont pas comptés. Mais si vous le faites, par exemple,summary(dataset)
les cas de NA sont pris en compte.la source