我有以下数据框。
> 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
我想使用来自PortfolioIndices数据框的映射,在temp中再添加一列,并使用与x2列中相应国家/地区对应的货币。这样的东西应该是输出
> temp
x1 x2 x3
1 1 INDIA INR
2 2 INDIA INR
3 3 US USD
4 4 US USD
我不想使用for循环,因为实际数据可能非常大,在这种情况下使用for循环效率很低。有没有更好的方法来实现给定的输出?
提前致谢。
最佳答案
您可以使用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