2010-11-05 3 views
38

Я пытаюсь найти функцию для преобразования целого числа в строку, поэтому я могу использовать его для инициализации объекта Date.Целое число для преобразования строк в R

> v = c(20081101) 
> date <- as.Date(v, format("%Y%m%d")) 

Ошибка в charToDate (х): строка символов не в стандартном однозначного формата

Я нашел решение с paste(), но я хотел бы знать, что это правильный путь для преобразования.

> date <- as.Date(paste(v), format("%Y%m%d")) 
> date 
[1] "2008-11-01" 

ответ

42

as.character() будет общий путь, а не использовать paste() для его побочного эффекта

> v <- 20081101 
> date <- as.Date(as.character(v), format = "%Y%m%d") 
> date 
[1] "2008-11-01" 

(я предполагаю, что это простой пример, и что-то вроде этого:

v <- "20081101"

невозможно?)

+1

@DavidArenburg Я думаю, что есть опечатка, как я никогда, ни разу, используется 'as.Date' как я показать выше. –

14

Другой способ получить тот же результат:

date <- strptime(v,format="%Y%m%d") 
+3

интересный. Я не понимал, что 'strptime' будет автоматически принуждать/обрабатывать числовые значения ... –

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