In dem unten codierten R-Datenrahmen möchte ich alle Zeiten ersetzen, die durch B
angezeigt werden b
.
junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12])
colnames(junk) <- c("nm", "val")
Dies bietet:
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
Mein erster Versuch war, a for
und if
Anweisungen wie folgt zu verwenden:
for(i in junk$nm) if(i %in% "B") junk$nm <- "b"
Aber wie Sie sicher sehen können, ersetzt dies ALLE Werte von junk$nm
durch b
. Ich kann sehen, warum dies so ist, aber ich kann nicht scheinen, dass es nur die Fälle von Junk $ nm ersetzt, in denen der ursprüngliche Wert war B
.
HINWEIS: Ich habe es geschafft, das Problem mit zu lösen, gsub
aber im Interesse des Lernens möchte RI immer noch wissen, wie ich meinen ursprünglichen Ansatz zum Arbeiten bringen kann (wenn es möglich ist).