Remplacer les occurrences d'un nombre dans plusieurs colonnes de données d'image avec une autre valeur dans R

ETA: le point de le ci-dessous, par ailleurs, est de ne pas avoir à parcourir l'ensemble de mon ensemble de vecteurs colonnes, juste au cas où c'était une proposition de solution (il suffit de faire ce qui est connu à travailler une fois à un moment).


Il y a beaucoup d'exemples de remplacer les valeurs dans un unique vecteur d'un bloc de données dans R avec une autre valeur.

Et aussi comment remplacer toutes les valeurs de NA avec quelque chose d'autre:

Ce que je cherche est analogue à la dernière question, mais en fait, d'essayer de remplacer une valeur par une autre. Je vais avoir de la difficulté à générer une trame de données de valeurs logiques mappé à mon bloc de données pour les cas où plusieurs colonnes de répondre à un des critères, ou tout simplement essayer de faire les actions de la première des deux questions sur plus d'une colonne.

Un exemple:

data <- data.frame(name = rep(letters[1:3], each = 3), var1 = rep(1:9), var2 = rep(3:5, each = 3))

data
  name var1 var2
1    a    1    3
2    a    2    3
3    a    3    3
4    b    4    4
5    b    5    4
6    b    6    4
7    c    7    5
8    c    8    5
9    c    9    5

Et dire que je veux de toutes les valeurs de 4 dans var1 et var2 être 10.

Je suis sûr que c'est élémentaire et je ne suis pas réfléchir correctement. J'ai essayé des choses comme:

data[data[, 2:3] == 4, ]

Qui ne fonctionne pas, mais si je fais la même chose avec data[, 2] au lieu de data[, 2:3], les choses fonctionnent bien. Il semble que le test logique (comme is.na()) à travailler sur plusieurs lignes/colonnes, mais que les comparaisons numériques ne sont pas jouer en tant que bien?

Merci pour toutes les suggestions!

OriginalL'auteur Hendy | 2013-02-06