W ramce danych R zakodowanej poniżej chciałbym zamienić wszystkie czasy, które B
pojawiają się na b
.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
to zapewnia:
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
Moja pierwsza próba polegała na użyciu a for
i if
takich stwierdzeń:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
ale jak na pewno widzisz, zastępuje to WSZYSTKIE wartości junk$nm
z b
. Rozumiem, dlaczego tak się dzieje, ale nie wydaje mi się, aby zastępował tylko te przypadki złomu $ nm, w których była pierwotna wartość B
.
UWAGA: udało mi się rozwiązać problem, gsub
ale w interesie nauki RI nadal chciałbym wiedzieć, jak uzyskać moje oryginalne podejście do pracy (jeśli jest to możliwe)