Почему эта функция не работает только в течение определенных месяцев / значений? - PullRequest
0 голосов
/ 12 апреля 2020

Привет всем и счастливой Пасхи. Вот небольшая функция, которую я сделал. Он принимает в качестве входных данных вектор из одной колонки, который содержит почасовой список электрических требований. Он преобразует их в data.frame, который содержит данные в 24 * n data.frame, где n - количество дней в данном месяце. Код ниже работает отлично для февраля и января.

backend = dayofyearindex_bottom[1]
frontend = dayofyearindex[1]

create.month.demand <- function(annualdemand, finish, start)
{
  eastersunday <- matrix(0, nrow = 24, ncol = frontend)
  eastersunday <- as.data.frame(eastersunday)
  index.hours = {1:24}

  for(k in start:finish)
  {
    for(i in min(index.hours):max(index.hours))
    {

      for(j in 1:nrow(eastersunday)){

        eastersunday[i,k] = farahgrumpy[i,1]
        #index.hours = index.hours + 24
      }
    }
  }

  return(eastersunday)
}

Редактировать Просто чтобы прояснить, это работает просто, когда я запускаю его так:

> random_month <- create.month.demand(farahgrumpy, 31, 1)

Вот где код ломается

> marchcreate <- create.month.demand(farahgrumpy, 90, 60)
 Show Traceback

 Rerun with Debug
 Error in `[<-.data.frame`(`*tmp*`, i, k, value = 1826555.85040606) : 
  new columns would leave holes after existing columns 
> 

Вот как выглядит сводка входных данных:

Редактировать: см. Описание ниже

> class(farahgrumpy)
[1] "data.frame"
> head(farahgrumpy)
  as.numeric(t(scenario1.demand.lists[[1]]))
1                                    1826556
2                                    1726556
3                                    1676556
4                                    1626556
5                                    1626556
6                                    1696556
> summary(farahgrumpy)
 as.numeric(t(scenario1.demand.lists[[1]]))
 Min.   : 228056                           
 1st Qu.:1726556                           
 Median :1976561                           
 Mean   :2133425                           
 3rd Qu.:2216556                           
 Max.   :5116302    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...