如何根据另一个 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的x1中的值,如果df1的x2与df2的y2相同,否则返回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