No quadro de dados R codificado abaixo, gostaria de substituir todas as vezes que B
aparecerem b
.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
isso fornece:
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
Minha tentativa inicial foi usar as instruções a for
e if
assim:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
mas como tenho certeza de que você pode ver, isso substitui TODOS os valores de junk$nm
com b
. Eu posso ver por que isso está fazendo isso, mas não consigo substituí-lo apenas nos casos de lixo eletrônico $ nm onde o valor original estava B
.
NOTA: Consegui resolver o problema, gsub
mas com o interesse de aprender, o RI ainda gostaria de saber como obter minha abordagem original para o trabalho (se possível)