[英]R replace nested loop with a more efficient way of going over 2 dataframes
I want to match state and district code between 2 dataframes and thus retrieve the production and yield of crop for the first dataframe.我想在两个数据帧之间匹配 state 和地区代码,从而检索第一个 dataframe 的作物产量和产量。
Can somebody please help me in replacing the nested loop below for a more efficient way:有人可以帮我替换下面的嵌套循环以获得更有效的方法:
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]
}
}
}
Look at the 'merge()' function: http://www.datasciencemadesimple.com/join-in-r-merge-in-r/看看'merge()' function: http://www.datasciencemadesimple.com/join-in-r-merge-in-r/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.