在 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,我仍然想知道如何得到我原来的工作方法(如果可能的话)