Привет всем и счастливой Пасхи. Вот небольшая функция, которую я сделал. Он принимает в качестве входных данных вектор из одной колонки, который содержит почасовой список электрических требований. Он преобразует их в 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