2013-03-13 3 views
0

Я имею дату начала и дату окончания, но когда я делаю список содержит все даты между ними, формат изменился:формат даты в списке изменяется в номера

> startDate <- as.Date("2012-01-01") 
> startDate 
[1] "2012-01-01" 
> endDate <- as.Date("2012-02-01") 
> endDate 
[1] "2012-02-01" 
> startDate:endDate 
[1] 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 
[17] 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 

Таким образом, вы можете что все даты преобразуются в числовой формат. Но проблема в том, что у меня есть функция API, которая может только читать формат даты как «ГГГГ-ММ-ДД». Может ли один предложить как я могу создать такой список, как:

[1] "2012-01-01" "2012-01-02" "2012-01-03" "2012-01-04" .... 

ответ

2

Использование seq функции:

seq(startDate,endDate,by="day") #you could use also by=1 
# see ?seq.Date for other options for "by" 

С помощью страницы оператора : (используйте ?":" или ?Colon):

Для других аргументов от: to эквивалентно seq (from, to) и генерирует последовательность от по-разному до шагов 1 или -1. Значение до будет включено, если оно отличается от целого числа до числового пуганием около 1е-7. Нечисловые аргументы принудительно принудительно вводятся (следовательно, без методов отправки) в числовые комплексные значения имеют свои мнимые части, отброшенные с предупреждением.

Так

identical(startDate:endDate,as.numeric(startDate):as.numeric(endDate)) 
[1] TRUE 

И кстати, вы создаете вектор, а не список. Вы можете сделать список из своих значений, используя функцию as.list, хотя, если это то, что вы действительно хотите.

Смежные вопросы