La manipulation manquant/le manque de données dans R--est-il de la fonction de masque, mais pas supprimer NAs?

Que vous attendez d'un DSL visant à l'analyse de données, R poignées manquantes ou de données incomplètes très bien, par exemple:

De nombreuses fonctions R ont une na.rm drapeau que lorsque la valeur VRAI, retirez le NAs:

>>> v = mean( c(5, NA, 6, 12, NA, 87, 9, NA, 43, 67), na.rm=T)
>>> v
      (5, 6, 12, 87, 9, 43, 67)

Mais si vous voulez traiter avec NAs avant l'appel de la fonction, vous avez besoin de faire quelque chose comme ceci:

pour supprimer chaque 'NA' partir d'un vecteur:

vx = vx[!is.na(a)]

pour supprimer chaque 'NA' partir d'un vecteur et de le remplacer w/un '0':

ifelse(is.na(vx), 0, vx)

pour enlever la totalité de chaque ligne qui contient " NA " à partir d'une trame de données:

dfx = dfx[complete.cases(dfx),]

Toutes ces fonctions de façon permanente supprimer 'NA' ou les lignes avec un " NA " en eux.

Parfois, ce n'est pas tout à fait ce que vous voulez bien--faire un 'NA'-excisée copie de la trame de données peut être nécessaire pour la prochaine étape dans le flux de travail, mais dans les étapes suivantes vous souhaitez souvent les lignes arrière (par exemple, pour calculer les colonnes de statistiques pour une colonne qui a de lignes manquantes causée par un appel précédent à "remplir les cas" pourtant, cette colonne n'a pas de " NA " valeurs).

d'être aussi clair que possible sur ce que je suis à la recherche de: python/numpy a une classe, masqué tableau, avec un masque méthode, qui permet de dissimuler--mais pas le supprimer--NAs lors d'un appel de fonction. Est-il une fonction analogue dans la R?

InformationsquelleAutor doug | 2010-04-10