建立一个比较其他两个变量的变量

时间:2019-12-10 19:10:22

标签: r dataframe r-base

我有两个数据框:

Response <- read.csv(file = "https://raw.githubusercontent.com/robintux/Datasets4StackOverFlowQuestions/master/Response.csv")
conversionRates <- read.csv(file = "https://raw.githubusercontent.com/robintux/Datasets4StackOverFlowQuestions/master/conversionRates.csv")

现在,我需要在Exchange数据框中建立一个Response变量,比较conversionRates$originCountryResponse$CompensationCurrency中的值,这是我的主要想法

 Response$Exchange <- conversionRates$exchangeRate[conversionRates$originCountry %in% Response$CompensationCurrency ]

但是我对最后一行代码有疑问:

Error in `$<-.data.frame`(`*tmp*`, Exchange, value = c(1, 1.195826, 0.01562,  : 
  replacement has 84 rows, data has 4131

我觉得问题在于我正在比较的变量的长度。我读到可以使用dplyr函数(left_join)来完成。但是我只想完成任务使用R的基本功能

1 个答案:

答案 0 :(得分:2)

尝试:

indx <- match(Response$CompensationCurrency, conversionRates$originCountry)
Response$Exchange <- conversionRates[indx, "exchangeRate"]
如果您设置merge

all.x = TRUE也将起作用。