Многопроцессорная обработка в цикле Nested for с условием if

Я пытаюсь проверить и заменить значения из большого набора данных. Но это занимает слишком много времени для того же.

Я пытаюсь написать функцию в многопроцессорной, но не знаю, как это сделать.

Может кто-нибудь предложить, какие изменения я должен внести в мой код, чтобы запустить его параллельно?

В приведенном ниже коде ty1 - это набор данных, который содержит названия городов и их коды. Я хочу проверить эти коды с другими значениями, хранящимися в df1, и заменить имена в ty1 на имена из df1.

for (i in 1:nrow(ty1)) {
  print(paste('i=',i))
  b<-ty1[i,'level_3_code']
  b1<-ty1[ty1$level_3_code==b,]
  row.names(b1)<-NULL
  df1<-l6[l6$level_3_code==b,]
  row.names(df1)<-NULL
  for (j in 1:nrow(b1)) {
    if(is.na(b1$level_4_code)[j]){
      for (k in 1:nrow(df1)) {
        if(b1$iu_code[j]==df1$level_6_code[k]){
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_6_id']=df1$level_6_id[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_6_name']=df1$level_6_name[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_6_code']=df1$level_6_code[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_5_id']=df1$level_5_id[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_5_name']=df1$level_5_name[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_5_code']=df1$level_5_code[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_4_id']=df1$level_4_id[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_4_name']=df1$level_4_name[k]
          ty1[which(ty1$iu_code==b1$iu_code[j]),'level_4_code']=df1$level_4_code[k]
        }
      }
    }
  }
}

0 ответов

Другие вопросы по тегам