2017-02-22 19 views
-5

мне нужно преобразовать следующий вектор с именем ДАТА в даты с помощью «дата»:Как преобразовать числовой вектор в даты?

DATE <- c(2015-03-20, 2015-03-23, 2015-03-24, 2015-03-25, 2015-03-26, 2015-03-27, 2015-03-30, 2015-03-31) 

Я не могу понять, как преобразовать вектор в дату без добавления кавычки «» для каждого значения вектора удержания:

DATE <- as.Date(c("2015-03-20", "2015-03-23", "2015-03-24", "2015-03-25", "2015-03-26", "2015-03-27", "2015-03-30", "2015-03-31")) 

Есть ли класс под названием «дата» (без капитала D), который может автоматически преобразовывать вектор в дату?

Спасибо!

+2

Мне любопытно, как вы получили ввод в этом формате –

+3

Посмотрите на результат своего первого вектора. То, что он просит R, - это вычесть 3 и 20 с 2015 года и так далее. – liamvt

+0

'Hmisc'package имеет приятную функцию' Cs() ', которая создает вектор символьных строк из некотируемых имен. Итак, вы можете попробовать: lubridate :: ymd (Hmisc :: Cs (2015-03-20, 2015-03-23, 2015-03-24, 2015-03-25, 2015-03-26, 2015-03- 27, 2015-03-30, 2015-03-31)). – Uwe

ответ

3

Я не уверен, как можно было бы получить такой вход. Как бы то ни было, ввод вычитается как числа (2015 - 03 - 20 = 1992) перед сохранением в переменной.

Вам нужно будет предоставить строковый ввод. Однако нет необходимости добавлять " к каждому отдельному значению. Вы можете прочитать все это как одну строку (добавьте только в начале и в конце), а затем обработайте ее с использованием R. В частности, используйте strsplit, разделив строку на ,, а затем преобразуйте значения на сегодняшний день с помощью as.Date. Прочтите ?strptime, чтобы узнать больше о format.

DATE <- c("2015-03-20, 2015-03-23, 2015-03-24, 2015-03-25, 2015-03-26, 2015-03-27, 2015-03-30, 2015-03-31") 
DATE = unlist(strsplit(DATE,", ")) #Split into individual values and convert to array 
as.Date(as.character(DATE), format = "%Y-%m-%d") 
[1] "2015-03-20" "2015-03-23" "2015-03-24" "2015-03-25" "2015-03-26" "2015-03-27" "2015-03-30" "2015-03-31" 
+0

'lubridate :: ymd (Hmisc :: Cs (2015-03-20, 2015-03-23, 2015-03-24, 2015-03-25, 2015-03-26, 2015-03-27, 2015- 03-30, 2015-03-31)) '. – Uwe