Reemplazar un valor en un marco de datos basado en una instrucción condicional (`if`)
En el marco de datos R codificado para abajo, me gustaría reemplazar todas las veces queB
aparece conb
.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
esto proporciona:
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
Mi intento inicial fue usar unafor
yif
declaraciones como esta:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
pero como estoy seguro de que puede ver, esto reemplaza TODOS los valores dejunk$nm
conb
. Puedo ver por qué esto está haciendo esto, pero parece que no puedo reemplazar solo los casos de basura $ nm donde el valor original eraB
.
NOTA: logré resolver el problema congsub
pero en interés de aprender R todavía me gustaría saber cómo lograr que mi enfoque original funcione (si es posible)