temp_day - это фрейм данных, и в нем миллиард строк.
Height_classify <- data.frame(color = c('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet'),
min = c(0, 100,300,500,1000,2000,5000),
max = c(100,300,500,1000,2000,5000,8000))
make_code <- function(temp_day, h_class){
temp_class <- Height_classify %>% filter(color == h_class)
min_godo <- temp_class[1,2]
max_godo <- temp_class[1,3]
temp_day_hight <- temp_day %>% filter(AltitudeActual_m >= min_godo & AltitudeActual_m < max_godo)
polys <- stri_c("polys_", temp_class[1,1], " = [")
hight_flight <- as.data.frame(table(unlist(temp_day_hight$mdH_CallSign)), stringsAsFactors = F)
for (sFlight in hight_flight$Var1){
temp_day_hight_flight <- temp_day_hight %>% filter(mdH_CallSign == sFlight)
if (nrow(temp_day_hight_flight) >1){
polys <- stri_c(polys, "[")
for (i in 1:nrow(temp_day_hight_flight)){
polys <- stri_c(polys, temp_day_hight_flight$coord[i])
if (i < nrow(temp_day_hight_flight)){
polys <- stri_c(polys, ", ")
} else {
polys <- stri_c(polys, "], ")
}
} # for i
} # if
}# for sFlight
polys <- substr(polys, 1, nchar(polys)-2)
polys <- stri_c(polys, "]\n\n")
return(polys)
}
Объединение множества строк в столбце занимает много времени для получения результата. Я думаю, что это замедляется, поскольку значения продолжают накапливаться в переменной.
polys <- stri_c(polys, temp_day_hight_flight$coord[i])
Как вы можете переключиться на функцию, которая работает быстрее?