通过匹配变量将值从一个data.frame添加到另一个data.frame [英] Adding value from one data.frame to another data.frame by matching a variable

查看:143
本文介绍了通过匹配变量将值从一个data.frame添加到另一个data.frame的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有两个数据帧df1和df2,如下所示

Suppose I have two data frames df1 and df2 as follows

Df1

Id Price Profit Month
10  5     2      1
10  5     3      2
10  5     2      3
11  7     3      1
11  7     1      2
12  0     0      1
12  5     1      2

Df2

Id Name
9  Kane
10 Jack
10 Jack
11 Will
12 Matt
13 Lee
14 Han

现在我要在 Df1 中插入名为 Name 的新列,并从 Df2 基于匹配的 Id

Now I want to insert a new column in Df1 named Name and get its value from Df2 based on matching Id

因此修改后的Df1将为

So modified Df1 will be

Id Price Profit Month Name
10  5     2      1    Jack
10  5     3      2    Jack
10  5     2      3    Jack
11  7     3      1    Will
11  7     1      2    Will
12  0     0      1    Matt
12  5     1      2    Matt


推荐答案

df1 <- data.frame(Id=c(10L,10L,10L,11L,11L,12L,12L),Price=c(5L,5L,5L,7L,7L,0L,5L),Profit=c(2L,3L,2L,3L,1L,0L,1L),Month=c(1L,2L,3L,1L,2L,1L,2L),stringsAsFactors=F);
df2 <- data.frame(Id=c(9L,10L,10L,11L,12L,13L,14L),Name=c('Kane','Jack','Jack','Will','Matt','Lee','Han'),stringsAsFactors=F);
df1$Name <- df2$Name[match(df1$Id,df2$Id)];
df1;
##   Id Price Profit Month Name
## 1 10     5      2     1 Jack
## 2 10     5      3     2 Jack
## 3 10     5      2     3 Jack
## 4 11     7      3     1 Will
## 5 11     7      1     2 Will
## 6 12     0      0     1 Matt
## 7 12     5      1     2 Matt

这篇关于通过匹配变量将值从一个data.frame添加到另一个data.frame的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆