В кадре данных 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, но в интересах обучения R я все еще хотел бы знать, как получить мой оригинальный подход к работе (если это возможно)