簡體   English   中英

使用 R 中的兩列值快速查找另一個數據框

[英]Quickly lookup to another data frame using two column values in R

我有一個包含三列(Trial、DurationRet、DiscountRate)的數據框(稱為“ModelOutput”)和另一個包含三列(場景、變量、值)的數據框(稱為“drdata”)。

我想快速過濾 drdata$Scenario == ModelOutput$Trial & drdata$variable == ModelOutput$DurationRet 以將 drdata$value 返回到 ModelOutput$DiscountRate 列。 有沒有辦法有效地做到這一點?

這是我的兩次嘗試,第一次失敗了,第二次太慢了。

ModelOutput$Trial <- drdata[drdata$Scenario == ModelOutput$Trial & drdata$variable == ModelOutput$DurationRet,"value"]



foreach(row = 1:nrow(ModelOutput)) %do%{
  
  ModelOutput[row, "DiscountRate"] <- drdata[drdata$Scenario == ModelOutput[row, "Trial"] & drdata$variable == as.factor(ModelOutput[row,"DurationRet"]+1),"value"]
  
}

我花了一分鍾,但我意識到加入可以完成我正在尋找的工作。

這是我的最終代碼:

ModelOutput <- ModelOutput %>% full_join(drdata, by = c(Trial = "Scenario", DurationRet = "variable"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM