R 一个向量中的填充值取决于另一个向量中的值

R 一个向量中的填充值取决于另一个向量中的值,r,R,我有两个具有两个不同维度的数据帧: 1: 2: 我想将dataDef$GDP\u平减物价指数列中的值替换为x$GDP\u平减物价指数列,条件是年列。换言之,我希望答案是: head (x) Year GDP_deflator 1 1825 1.788002 2 1826 1.884325 3 1827 2.016997 4 1828 1.802907 5 1829 1.78199

我有两个具有两个不同维度的数据帧:

1:

2:

我想将
dataDef$GDP\u平减物价指数
列中的值替换为
x$GDP\u平减物价指数
列,条件是
列。换言之,我希望答案是:

head (x)

   Year GDP_deflator
1  1825           1.788002
2  1826           1.884325
3  1827           2.016997
4  1828           1.802907
5  1829           1.781999
6  1829           1.781999
7  1830           1.866437
8  1830           1.866437
9  1830           1.866437
10 1831           1.960316
因此,
重复
年(即1830年)得到相同的值,
1.866437
。有什么建议吗


致以最诚挚的问候

您希望将两个data.frames合并。这是一个多对一的合并。

一种可能是使用
匹配

x$GDP_deflator <- dataDef$GDP_deflator[match(x$Year, dataDef$Year)]

x$GDP\u平减指数这就是为什么它是多对一匹配。使用
all.x
参数。如果您需要代码,您应该提供一个。我们是否可以假定
x$Year
中没有重复项?如果是这样,执行以下操作的循环或
lappy
将起作用。(在行索引上循环…
dataDef[i,2]
head (x)

   Year GDP_deflator
1  1825           1.788002
2  1826           1.884325
3  1827           2.016997
4  1828           1.802907
5  1829           1.781999
6  1829           1.781999
7  1830           1.866437
8  1830           1.866437
9  1830           1.866437
10 1831           1.960316
x$GDP_deflator <- dataDef$GDP_deflator[match(x$Year, dataDef$Year)]