J'essaie de remplacer les éléments d'une donnée de données. # N/A "avec" NULL ", et je rencontre des problèmes:
foo <- data.frame("day"= c(1, 3, 5, 7), "od" = c(0.1, "#N/A", 0.4, 0.8))
indices_of_NAs <- which(foo == "#N/A")
replace(foo, indices_of_NAs, "NULL")
Erreur dans [<-.data.frame
(*tmp*
, liste, valeur = "null"): les nouvelles colonnes laisseraient des trous après les colonnes existantes
Je pense que le problème est que mon index traite les données.frame comme vecteur, mais que la fonction remplaçable le traite différemment, mais je ne suis pas sûr de ce que le problème est?
Pourquoi pas
x$col[is.na(x$col)]<-value
?
[.____] Vous n'aurez pas à changer votre Dataframe
La fonction Remplacer attend un vecteur et vous fournissez une donnée.
Vous devriez vraiment essayer d'utiliser NA
et NULL
au lieu des valeurs de caractère que vous utilisez actuellement. Sinon, vous ne pourrez pas profiter de toutes les fonctionnalités de R pour gérer les valeurs manquantes.
éditer
Vous pouvez utiliser une fonction Appliquer ou faire quelque chose comme ceci:
foo <- data.frame(day= c(1, 3, 5, 7), od = c(0.1, NA, 0.4, 0.8))
idx <- which(is.na(foo), arr.ind=TRUE)
foo[idx[1], idx[2]] <- "NULL"
Vous ne pouvez pas affecter une valeur réelle NULL
dans ce cas, car il a une longueur zéro. Il est important de comprendre la différence entre NA
et NULL
, alors je vous recommande de lire ?NA
et ?NULL
.