![](/img/trans.png)
[英]R update zero values in a data frame using a lookup table using the column names for the lookup
[英]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.