Supprimer NA / NaN / Inf dans une matrice
Je veux essayer deux choses :
- Comment puis-je supprimer les lignes qui contiennent NA/NaN/Inf
- Comment puis-je régler la valeur du point de données de NA/NaN/Inf à 0.
Jusqu'à présent, j'ai essayé d'utiliser les éléments suivants pour NA des valeurs, mais d'obtenir des avertissements.
> eg <- data[rowSums(is.na(data)) == 0,]
Error in rowSums(is.na(data)) : 'x' must be an array of at least two dimensions In addition: Warning message: In is.na(data) : is.na() applied to non-(list or vector) of type 'closure'
source d'informationauteur user2199881
Vous devez vous connecter pour publier un commentaire.
Je crois que je vais jeter mon chapeau dans le ring avec mes méthodes préférées:
Démonstration:
Remarque:
Compose(is.finite, all)
est équivalent àfunction(x) all(is.finite(x))
Pour définir les valeurs à 0, l'utilisation de la matrice d'indexation:
NaRV.omettre(x) est mon option préférée pour la question 1. Mnémonique NaRV signifie "n'est pas régulier valeur".
Juste une autre façon (pour la première question):
Je ne peux pas penser à quelque chose d'autre que Matthieu réponse à la deuxième partie.