为了使一个数据框中的一列与另一个数据框中的一列相匹配,我们可以使用match函数。例如,如果我们有两个分别称为df1和df2的数据帧,每个数据帧具有一个相似的列,而第二个数据帧具有一个额外的列,则可以对相似的列进行匹配,并且可以基于该匹配在第一个数据帧中创建一个新列第二列是第二数据帧。查看以下示例以了解其工作原理。
> df1<-data.frame(x1=sample(0:2,20,replace=TRUE)) > df1输出结果
x1 1 2 2 2 3 1 4 0 5 2 6 2 7 2 8 2 9 2 10 1 11 1 12 2 13 1 14 0 15 2 16 2 17 2 18 2 19 2 20 2
> df2<-data.frame(x1=rpois(20,2),x2=rpois(20,5)) > df2输出结果
x1 x2 1 2 5 2 2 5 3 3 6 4 0 5 5 1 3 6 1 5 7 2 6 8 1 3 9 4 6 10 0 5 11 1 0 12 3 4 13 1 3 14 1 4 15 2 6 16 1 5 17 2 2 18 3 8 19 0 5 20 1 6
> df1$x2<-df2$x2[match(df1$x1,df2$x1)] > df1输出结果
x1 x2 1 2 5 2 2 5 3 1 3 4 0 5 5 2 5 6 2 5 7 2 5 8 2 5 9 2 5 10 1 3 11 1 3 12 2 5 13 1 3 14 0 5 15 2 5 16 2 5 17 2 5 18 2 5 19 2 5 20 2 5
> y1<-sample(c("A","B","C"),20,replace=TRUE) > df3<-data.frame(y1) > df3输出结果
y1 1 A 2 C 3 C 4 A 5 C 6 B 7 C 8 B 9 B 10 C 11 B 12 C 13 B 14 A 15 A 16 C 17 B 18 B 19 A 20 A
> y1<-sample(c("A","B","C","D","E"),20,replace=TRUE) > y2<-sample(LETTERS[1:4],20,replace=TRUE) > df4<-data.frame(y1,y2) > df4输出结果
y1 y2 1 E C 2 A D 3 C B 4 C D 5 D B 6 B D 7 D C 8 C B 9 D D 10 C A 11 B D 12 B C 13 C B 14 B D 15 D C 16 B B 17 E C 18 D B 19 A D 20 B C
> df3$y2<-df4$y2[match(df3$y1,df4$y1)] > df3输出结果
y1 y2 1 A D 2 C B 3 C B 4 A D 5 C B 6 B D 7 C B 8 B D 9 B D 10 C B 11 B D 12 C B 13 B D 14 A D 15 A D 16 C B 17 B D 18 B D 19 A D 20 A D