Trong khung dữ liệu R được mã hóa cho bên dưới, tôi muốn thay thế tất cả thời gian B
xuất hiện bằng b.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
điều này cung cấp:
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
Nỗ lực ban đầu của tôi là sử dụng a forvà các ifcâu lệnh như sau:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
nhưng như tôi chắc chắn bạn có thể thấy, điều này thay thế TẤT CẢ các giá trị của junk$nmwith b. Tôi có thể hiểu lý do tại sao điều này đang làm điều này nhưng tôi dường như không thể làm cho nó chỉ thay thế những trường hợp $ nm rác có giá trị ban đầu B.
LƯU Ý: Tôi đã giải quyết được vấn đề gsubnhưng vì quan tâm đến việc học, RI vẫn muốn biết cách để cách tiếp cận ban đầu của tôi hoạt động (nếu có thể)