0

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

1:

head(x)
   Year GDP_deflator
1  1825           NA
2  1826           NA
3  1827           NA
4  1828           NA
5  1829           NA
6  1829           NA
7  1830           NA
8  1830           NA
9  1830           NA
10 1831           NA

dim(x)
  1733    2

2:

head(dataDef)
   Year GDP_deflator
1  1825     1.788002
2  1826     1.884325
3  1827     2.016997
4  1828     1.802907
5  1829     1.781999
6  1830     1.866437
7  1831     1.960316
8  1832     2.029601
9  1833     1.880957
10 1834     1.845750

dim(dataDef)
 101   2

我想将列中的值替换dataDef$GDP_deflator为以x$GDP_deflator列为条件的Year列。换句话说,我希望答案是:

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

所以repeating年份(即 1830 年)得到相同的值,1.866437. 有什么建议么?

此致

4

2 回答 2

0

你想要merge两个data.frames。这是一个多对一的合并。

于 2012-11-19T12:23:32.737 回答
0

一种可能性是使用match

x$GDP_deflator <- dataDef$GDP_deflator[match(x$Year, dataDef$Year)]
于 2012-11-19T12:28:20.650 回答