R:使用来自另一个数据帧的映射在数据框中创建新列

use*_*376 5 r

我有以下数据框架.

> temp
  x1    x2
1  1 INDIA
2  2 INDIA
3  3    US
4  4    US

> PortfolioIndices
  Country   Index CCY
1   INDIA   CNX50 INR
2      US   SP500 USD
3      UK FTSE100 GBP
Run Code Online (Sandbox Code Playgroud)

我想使用PortfolioIndices数据框中的映射,使用与x2列中各个国家/地区对应的货币向temp添加一个列.这样的东西应该是输出

> temp
  x1    x2  x3
1  1 INDIA INR
2  2 INDIA INR
3  3    US USD
4  4    US USD
Run Code Online (Sandbox Code Playgroud)

我不想使用for循环,因为实际数据可能非常大,并且在这种情况下使用for循环将是非常低效的.有没有更好的方法来实现给定的输出?

提前致谢.

Sve*_*ein 5

您可以使用merge

> merge(temp, PortfolioIndices, by.x = "x2", by.y = "Country")
     x2 x1 Index CCY
1 INDIA  1 CNX50 INR
2 INDIA  2 CNX50 INR
3    US  3 SP500 USD
4    US  4 SP500 USD
Run Code Online (Sandbox Code Playgroud)