在下面编码的 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"
但是,正如你所看到的那样,这将用 b
替换 junk$nm
的所有值。我能理解为什么会这样,但我似乎无法使其仅替换原始值为 B
的那些 junk$nm。
注意:我使用了 gsub
解决了问题,但出于学习 R 的目的,我仍然想知道如何让我的原始方法工作(如果可能的话)。