Мне нужна помощь, чтобы улучшить часть моего кода (я новичок). У меня есть большая база данных (flussi_coord) со столбцом, содержащим названия разных регионов. Каждый регион связан со складом, и мне нужно добавить два столбца с его координатами в flussi_coord; они содержатся в другой матрице с именемordin_oba. oba - это просто список регионов, созданных с помощью уровней (flussi_coord $ oba).
Решение, которое я придумал, работает, но оно очень медленное. Для каждой строки flussi_coord я проверяю, есть ли переписка с именем в oba; если это правда, я вставляю долготу и широту хранилища в два вектора, которые позже добавляются в flussi_coord.
for (k in 1:dim(flussi_coord)[1]) {
for (i in 1:length(oba)) {
if (flussi_coord[k,5] == oba[i]) {
LongMag[k] <- coord_oba[i,1]
LatMag[k] <- coord_oba[i,2]
}
}
}
flussi_coord <- cbind(flussi_coord, LongMag, LatMag)
Я знаю, что мне нужно каким-то образом фильтровать базу данных, выбирая строки, которые соответствуют определенному региону добавьте два столбца и выполните итерации для других регионов. Я пытался найти похожие решения, но я просто не могу запустить код.
#this doesn't work
for (i in 1:length(oba)) {
flussi_coord[which(flussi_coord$OBA == oba[i]), ]$Longititudine_magazzino <- coord_oba[i,1]
flussi_coord[which(flussi_coord$OBA == oba[i]), ]$Latitudine_magazzino <- coord_oba[i,2]
}
Заранее спасибо за помощь!