Dans la trame de données R codée ci-dessous, je voudrais remplacer toutes les heures qui B
apparaissent par b
.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
cela fournit:
nm val
1 A a
2 B b
3 C c
4 D d
5 A e
6 B f
7 C g
8 D h
9 A i
10 B j
11 C k
12 D l
Ma première tentative était d'utiliser des instructions for
et if
comme ceci:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
mais comme je suis sûr que vous pouvez le voir, cela remplace TOUTES les valeurs de junk$nm
avec b
. Je peux voir pourquoi cela fait cela, mais je n'arrive pas à le faire remplacer uniquement les cas de junk $ nm où la valeur d'origine était B
.
REMARQUE: j'ai réussi à résoudre le problème avec, gsub
mais dans l'intérêt de l'apprentissage, je voudrais toujours savoir comment faire fonctionner mon approche originale (si cela est possible)