У кадрі даних R, кодованому нижче, я хотів би замінити всі часи, що B
з’являються b
.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
це забезпечує:
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
Моя початкова спроба полягала в тому, щоб використовувати for
та if
такі заяви:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
але я впевнений , що ви можете бачити, це замінює собою всі значення junk$nm
з b
. Я бачу, чому це робиться, але, здається, я не можу змусити його замінити лише ті випадки, які випадали з мотлоху $ nm, де було початкове значення B
.
ПРИМІТКА. Мені вдалося вирішити проблему, gsub
але в інтересах вивчення RI все ж хотілося б знати, як отримати свій оригінальний підхід до роботи (якщо це можливо)