У меня есть кадр данных "z"
letter color
1 a 0
2 e 0
3 b 0
4 b 0
5 d 0
6 d 0
7 a 0
8 b 0
9 c 0
10 d 0
11 c 0
12 c 0
13 c 0
14 c 0
15 e 0
16 e 0
17 a 0
18 d 0
19 e 0
20 b 0
и другой фрейм данных "y"
letter color
1 a red
2 b blue
3 c green
когда буква в z совпадает с буквой в y, я хотел бы добавить цвет из y в соответствующее поле цвета в z, но я не хочу удалять любые значения из z. Если совпадение не происходит, цвет z $должен оставаться неизменным. Я использовал "0" в качестве владельца места в z $color, это может быть текст вместо этого.
Я делал попытки для циклов, команды match() и операторов с% in%, но я не совсем добился результатов, которые я получил после.
Любые идеи?
Это код, который я использовал для фреймов данных
set.seed(3)
z=data.frame(sample(c("a","b","c","d","e"),20,replace=T))
names(z)="letter"
z$color=rep(0,dim(z)[1])
z
y1=c("a","b","c")
y2=c("red","blue","green")
y=data.frame(cbind(y1,y2))
names(y)=c("letter","color")
y