I have a dataframe like:
> df <- data.frame(id=c(015,335,625,789), B=c(8,19,8,6), C=c(4,1,4,6), Source=c("Gk", "Ap", "Ap", "Kh"))
> df
id B C Source
1 015 8 4 Gk
2 335 19 1 Ap
3 625 8 4 Ap
4 789 6 6 Kh
另一个数据框:
p <- data.frame(id=c(335,625, 789), B2 = c(5,3,4))
p
id B2
1 335 5
2 625 3
3 789 4
我希望将df
中B
列中与p
的B2
相同且id
一致,同时满足df$Source == "Ap"
条件的值替换为B2
。
最终数据框应为:
id B C Source
1 015 8 4 Gk
2 335 5 1 Ap
3 625 3 4 Ap
4 789 6 6 Kh
我知道如何使用零或NA
等来替换整个列,但我只想替换符合特定条件的值(而且不需要使用for循环…)。我该如何实现这一点?
df
中,你的 id 与df
定义中的id
不同,请编辑此处。 - J_F