Comment puis-je la remplacer <NA> les valeurs avec des zéros dans les R?
J'ai un ensemble de données.cadre et certaines colonnes ont NA
valeurs. Je veux remplacer le <NA>
s avec des zéros. Comment je le faire?
En fait, madate, illustré ici, n'est-ce pas mes données d'origine. l'original est trop grand pour montrer ici.
mydata = read.spss('mydata.sav', use.value.labels = TRUE, to.data.frame = TRUE, max.value.labels = Inf, trim.factor.names = FALSE, trim_values = FALSE, reencode = "UTF-8")
> mydata
Q_16_O3 Q_16_O4 Q_16_O5 Q_16_O6 Q_16_O7 Q_16_O8 Q_16_O9
10 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
11 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
12 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
13 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
14 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
15 Trem <NA> <NA> <NA> <NA> <NA> <NA>
16 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
17 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
18 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
19 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
20 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
str(mydata)
'data.frame': 11 obs. of 7 variables:
$ Q_16_O3: Factor w/ 10 levels "Ônibus","Vans",..: NA NA NA NA NA 4
NA NA NA NA ...
$ Q_16_O4: Factor w/ 10 levels "Ônibus","Vans",..: NA NA NA NA NA
NA NA NA NA NA ...
$ Q_16_O5: Factor w/ 10 levels "Ônibus","Vans",..: NA NA NA NA NA
NA NA NA NA NA ...
$ Q_16_O6: Factor w/ 10 levels "Ônibus","Vans",..: NA NA NA NA NA
NA NA NA NA NA ...
$ Q_16_O7: Factor w/ 10 levels "Ônibus","Vans",..: NA NA NA NA NA
NA NA NA NA NA ...
$ Q_16_O8: Factor w/ 10 levels "Ônibus","Vans",..: NA NA NA NA NA
NA NA NA NA NA ...
$ Q_16_O9: Factor w/ 10 levels "Ônibus","Vans",..: NA NA NA NA NA
NA NA NA NA NA ...
Je voudrais utiliser la freq de la fonction, donc je ne dois pas modifier sa structure(mydata).
ps: Mon problème est <NA>
, pas NA
Dans le NA
cas, j'ai une solution ICI.
- Quel est le type de données? Vérifier à l'aide de
lapply(mydata,summary)
et poste le dans ta réponse. <NA>
est justeNA
pour le personnage de vecteurs lorsqu'il est affiché dans undata.frame
(viaprint.data.frame
). Il est encore très probable que c'est unNA
que c'est pourdata.frame(text=c("a",NA))
Avez-vous essayé l'autre solution?- J'aimerais savoir: lequel de ces cas est-il vrai? Sont votre
<NA>
de valeurs réellement les personnages ou pour les valeurs à l'intérieur de facteurs??
Vous devez vous connecter pour publier un commentaire.
Pour pratiquement n'importe quelle structure de données
X
contenant des nombres, utiliserVotre question semble un peu discombobulated si - vous avez indiqué que vous voulez dire
<NA>
NA pas, sans expliquer ce que type<NA>
est.Si c'est la chaîne
"<NA>"
vous voulez dire, alorsSi vous avez mélangé les types de données dans votre bloc de données, vérifiez que trop:
qui est strictement plus utile dans le numérique cas.
C'est un très commun de l'idiome de traitement des données manquantes dans R, bien que vous devriez regarder aussi le paramètre
na.rm = TRUE
qui de nombreuses fonctions telles quemean
,sum
, &c. acceptera.Cette stratégie échoue pour un facteur, parce que vous ne pouvez pas ajouter de nouveaux niveaux de facteur de par l'attribution de la valeur d'un facteur. Je n'ai pas l'habitude de lire.spss, mais en regardant les la documentation, je vous suggère d'ajouter la
use.value.labels = FALSE
argument de votre appel, afin d'éviter la création de facteurs, en premier lieu.Dans votre cas particulier, l'ensemble de votre bloc de données est de même type (facteur). Cela signifie qu'il est sécuritaire de le convertir à une matrice de caractère
Maintenant, vous pouvez remplacer le NA valeurs
Dans le cas plus général où vous avez indésirables facteur de colonnes mélangées avec d'autres types de, ce que vous devez faire quelque chose d'un peu plus complexe.