Nel frame di dati R codificato per sotto, vorrei sostituire tutte le volte che B
appare con b
.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
questo fornisce:
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
Il mio primo tentativo è stato quello di utilizzare le istruzioni for
e in questo if
modo:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
ma come sono sicuro puoi vedere, questo sostituisce TUTTI i valori di junk$nm
con b
. Posso capire perché questo sta facendo questo, ma non riesco a convincerlo a sostituire solo quei casi di spazzatura $ nm in cui era il valore originale B
.
NOTA: sono riuscito a risolvere il problema gsub
ma nell'interesse di apprendere il RI vorrei ancora sapere come far funzionare il mio approccio originale (se possibile)