Как быстро создать переменную, которая объединит все строковые значения определенного столбца в кадре данных? - PullRequest
0 голосов
/ 07 января 2020

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]) 

Как вы можете переключиться на функцию, которая работает быстрее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...