r-嵌套if语句的for循环



这是我试图运行的代码,它需要一段时间。

District是39299行和16列的数据帧,lm_data是59804行和16个变量的数据帧。我想在lm_data中设置一个名为tentativeStartDate的新变量,如果有几个条件,它将取districts$firstDay[j]的值。有没有更有效的方法可以做到这一点?

for (i in 1: nrow(lm_data)){
for (j in 1: nrow(districts)){
if (lm_data$DISTORGID[i] == districts$DISTORGID[j] & lm_data$gradeCode[i] == districts$gradeCode[j]){
lm_data$tentativeStartDate[i] = districts$firstDay[j]
}
}
}

不确定这是否有效,因为我无法测试它,但如果它确实有效,应该会更快。

# get the indices
idx <- which(lm_data$DISTORGID == districts$DISTORGID & lm_data$gradeCode == districts$gradeCode)
lm_data$tentativeStartDate[idx] <- districts$firstDay[idx]

最新更新