Nous avons une trame de données à partir d'un fichier CSV. Le bloc de données DF
comporte des colonnes contenant des valeurs observées et une colonne ( VaR2
) contenant la date à laquelle une mesure a été prise. Si la date n'a pas été enregistrée, le fichier CSV contient la valeur NA
, pour les données manquantes.
Var1 Var2
10 2010/01/01
20 NA
30 2010/03/01
Nous aimerions utiliser la commande subset pour définir un nouveau bloc de données de new_DF
sorte qu'il ne contienne que des lignes qui ont une NA'
valeur de la colonne ( VaR2
). Dans l'exemple donné, seule la ligne 2 sera contenue dans le nouveau DF
.
La commande
new_DF<-subset(DF,DF$Var2=="NA")
ne fonctionne pas, le bloc de données résultant n'a pas d'entrées de ligne.
Si dans le fichier CSV d' origine de la valeur NA
sont échangées avec NULL
la même commande produit le résultat souhaité: new_DF<-subset(DF,DF$Var2=="NULL")
.
Comment puis-je faire fonctionner cette méthode si, pour la chaîne de caractères, la valeur NA
est fournie dans le fichier CSV d'origine?
new_DF <- DF[is.na(DF$Var),]
, c'est-à-dire qu'il semble y avoir une(
parenthèse supplémentaire aprèsDF[
?NA est une valeur spéciale dans R, ne mélangez pas la valeur NA avec la chaîne "NA". Selon la façon dont les données ont été importées, vos cellules "NA" et "NULL" peuvent être de différents types (le comportement par défaut est de convertir les chaînes "NA" en valeurs NA et de laisser les chaînes "NULL" telles quelles).
Si vous utilisez read.table () ou read.csv (), vous devriez considérer l'argument "na.strings" pour effectuer une importation de données propres et toujours travailler avec des valeurs R NA réelles.
Un exemple, fonctionnant dans les deux cas des cellules "NULL" et "NA":
la source
complete.cases
donneTRUE
quand toutes les valeurs d'une ligne ne sont pasNA
la source
Cela devrait créer une nouvelle trame de données (
new_data
) avec uniquement les valeurs manquantes.Fonctionne mieux pour garder une trace des valeurs que vous pourriez supprimer par la suite car elles contenaient des colonnes avec des observations manquantes (NA).
la source
Essayez de changer ceci:
la source
DF %>% filter(is.na(Var2))
aprèslibrary(dplyr)
.Imprime toutes les lignes avec des données NA:
la source