Форматирование дат с использованием условия - PullRequest
0 голосов
/ 19 ноября 2018

Я использую «R» для форматирования символьной переменной, имеющей два разных типа форматов даты (ММ-ДД-ГГГГ и ГГГГ-ММ-ДД).Вторая - дата происхождения Excel.

DateVar <- c("12-07-2017", "43229", "43137", "03-27-2018")

Я создал вектор, используя grepl для идентификации обоих типов, а затем цикл for для применения функции as.date только к «датам происхождения Excel».

indicator <- !grepl("-", DateVar)

for(i in indicator == TRUE){
as.date(DateVar, origin = "1899-12-30") 

Это не работает для меня, однако, поэтому я ищу, если кто-то может указать мне в правильном направлении.

Спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

Пара вещей: цикл for не нужен - просто установите подменю DateVar с [indicator]. Во-вторых, это as.Date, а не as.date (обратите внимание на «D»). В-третьих, поскольку это символьный вектор, вам нужно пропустить исходные числа через as.integer, чтобы as.Date мог работать с ними:

as.Date(as.integer(DateVar[indicator]), origin = "1899-12-30")

(или без промежуточного назначения индикатора:

as.Date(as.integer(DateVar[!grepl("-",DateVar)]), origin = "1899-12-30")

[1] "2018-05-09" "2018-02-06"

Если вы хотите ввести эти даты обратно в DateVar, вы снова используете функцию подмножества:

DateVar[indicator]<-format(as.Date(as.integer(DateVar[indicator]), origin = "1899-12-30"), "%m-%d-%Y")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...