如何在 R 数据框中根据另一个数据框中的列值来赋值?
要根据另一列的值为一列赋值,我们可以使用 `ifelse` 函数。`ifelse` 函数使用等号 (==) 检查一个数据框中的一列的值是否与另一个数据框中另一列的值匹配,如果匹配则替换原始值,否则返回原始值。查看下面的示例以了解如何操作。
示例
考虑以下数据框:
> x1<-rpois(20,2) > x2<-rpois(20,5) > df1<-data.frame(x1,x2) > df1
输出
x1 x2 1 3 5 2 3 7 3 0 6 4 0 5 5 4 6 6 3 8 7 1 5 8 0 8 9 4 6 10 1 2 11 2 3 12 2 6 13 0 0 14 1 9 15 0 0 16 4 2 17 3 5 18 3 8 19 1 3 20 2 7
示例
> y1<-rpois(20,2) > y2<-rpois(20,5) > df2<-data.frame(y1,y2) > df2
输出
y1 y2 1 3 8 2 4 11 3 3 8 4 2 2 5 1 3 6 1 4 7 1 7 8 1 2 9 5 2 10 2 4 11 2 3 12 1 3 13 1 5 14 3 4 15 0 3 16 2 5 17 3 5 18 1 7 19 5 10 20 2 6
如果 df1 的 x2 与 df2 的 y2 相同,则替换 df1 中 x1 的值,否则返回 df1 中的 x1:
> df1$x1<-ifelse(df1$x2==df2$y2,df2$y2,df1$x1) > df1
输出
x1 x2 1 3 5 2 3 7 3 0 6 4 0 5 5 4 6 6 3 8 7 1 5 8 0 8 9 4 6 10 1 2 11 3 3 12 2 6 13 0 0 14 1 9 15 0 0 16 4 2 17 5 5 18 3 8 19 1 3 20 2 7
广告