Как создать столбцы в фрейме данных на основе диапазона дат? - PullRequest
0 голосов
/ 16 января 2019

У меня есть диапазон дат:

start_date <- "2019-01-01"
end_date <- "2019-01-05"

range <- seq(as.Date(start_date), as.Date(end_date), by = 1)

И пустой фрейм данных:

output <- data.frame()

Как я могу создать новые столбцы во фрейме данных на основе диапазона дат, где каждый столбец представляет день в этом диапазоне?

Желаемый результат таков (значения 0 только для примера):

   2018.01.01  2018.01.02  2018.01.03  2018.01.04  2018.01.05
1           0           0           0           0           0
2           0           0           0           0           0
3           0           0           0           0           0
4           0           0           0           0           0
5           0           0           0           0           0

Я бы подумал, что нечто подобное могло бы сработать, но это не так:

for(i in range){
  output$i <- i
}

Куда я иду не так?

1 Ответ

0 голосов
/ 16 января 2019

Один вариант: replicate

l1 <- length(range)
setNames(data.frame(replicate(l1, data.frame(col1 = rep(0, l1)))), range)

Или используя rep

data.frame(setNames(rep(list(rep(0, l1)), l1), range), check.names = FALSE)

Или используйте маршрут matrix

as.data.frame( matrix(0, l1, l1, dimnames = list(NULL, 
           as.character(range))), check.names = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...