根据另一列更改具有多个值的列
Change column with multiple values based on another column
salary <- c(5000, 3000, 2000, 1000, 5000)
currency <- c('USD', 'EUR', 'JPY', 'CHF', 'CAD')
df <- data.frame(salary, currency)
我想将所有工资转换为美元,所以如果我想将 3000 转换为美元,我会将 3000 乘以 1.12。它使用 for 循环和 if 语句,但我想知道是否有更快更短的方法。
假设您的汇率为 table:
exchangeRatestoUSD = data.frame(currency = c('USD', 'EUR', 'JPY', 'CHF', 'CAD'),
rates = c(1, 2, 2.51, 1.14, 12))
currency rates
1 USD 1.00
2 EUR 2.00
3 JPY 2.51
4 CHF 1.14
5 CAD 12.00
那么你可以简单地做:
df <- merge(df, exchangeRatestoUSD)
df$USD_salary = df$salary * df$rates
currency salary rates USD_salary
1 CAD 5000 12.00 60000
2 CHF 1000 1.14 1140
3 EUR 3000 2.00 6000
4 JPY 2000 2.51 5020
5 USD 5000 1.00 5000
salary <- c(5000, 3000, 2000, 1000, 5000)
currency <- c('USD', 'EUR', 'JPY', 'CHF', 'CAD')
df <- data.frame(salary, currency)
我想将所有工资转换为美元,所以如果我想将 3000 转换为美元,我会将 3000 乘以 1.12。它使用 for 循环和 if 语句,但我想知道是否有更快更短的方法。
假设您的汇率为 table:
exchangeRatestoUSD = data.frame(currency = c('USD', 'EUR', 'JPY', 'CHF', 'CAD'),
rates = c(1, 2, 2.51, 1.14, 12))
currency rates
1 USD 1.00
2 EUR 2.00
3 JPY 2.51
4 CHF 1.14
5 CAD 12.00
那么你可以简单地做:
df <- merge(df, exchangeRatestoUSD)
df$USD_salary = df$salary * df$rates
currency salary rates USD_salary
1 CAD 5000 12.00 60000
2 CHF 1000 1.14 1140
3 EUR 3000 2.00 6000
4 JPY 2000 2.51 5020
5 USD 5000 1.00 5000