簡體   English   中英

R 用更有效的方式替換嵌套循環來遍歷 2 個數據幀

[英]R replace nested loop with a more efficient way of going over 2 dataframes

我想在兩個數據幀之間匹配 state 和地區代碼,從而檢索第一個 dataframe 的作物產量和產量。

有人可以幫我替換下面的嵌套循環以獲得更有效的方法:

for (i in 1:length(og_county2$State)){
  for (j in 1:length(km2$State)){    
      if (is.na(og_county2$`Value.CORN, GRAIN - ACRES HARVESTED`[i]) == "TRUE" & (as.character(og_county2$State[i]) == as.character(km2$State[j])) & (as.character(og_county2$District.code[i]) == as.character(km2$Ag.District.Code[j]))& km2$County[j] =="OTHER (COMBINED) COUNTIES"){

        og_county2$`Value.CORN, GRAIN - ACRES HARVESTED`[i] = km2$`Value.CORN, GRAIN - ACRES HARVESTED`[j]
      }
    if (is.na(og_county2$`Value.CORN, GRAIN - PRODUCTION, MEASURED IN BU`[i]) == "TRUE" & (as.character(og_county2$State[i]) == as.character(km2$State[j])) & (as.character(og_county2$District.code[i]) == as.character(km2$Ag.District.Code[j]))& km2$County[j] =="OTHER (COMBINED) COUNTIES"){

      og_county2$`Value.CORN, GRAIN - PRODUCTION, MEASURED IN BU`[i] = km2$`Value.CORN, GRAIN - PRODUCTION, MEASURED IN BU`[j]
    }
    if (is.na(og_county2$`Value.CORN, GRAIN - YIELD, MEASURED IN BU / ACRE`[i]) == "TRUE" & (as.character(og_county2$State[i]) == as.character(km2$State[j])) & (as.character(og_county2$District.code[i]) == as.character(km2$Ag.District.Code[j]))& km2$County[j] =="OTHER (COMBINED) COUNTIES"){

      og_county2$`Value.CORN, GRAIN - YIELD, MEASURED IN BU / ACRE`[i] = km2$`Value.CORN, GRAIN - YIELD, MEASURED IN BU / ACRE`[j]
    }
    }
   }

暫無
暫無

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

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