我有以下数据框架.
> 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循环将是非常低效的.有没有更好的方法来实现给定的输出?
提前致谢.
您可以使用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)