Преобразование даты Excel в дату с сохранением строк «не даты» в том же столбце - PullRequest
0 голосов
/ 19 сентября 2018

В моем наборе данных есть определенный столбец, который содержит как даты, так и текст.Из-за этого функция read_xls, которую я использую, импортирует весь столбец как «символ» класса.Следовательно, даты возвращаются к своему базовому коду даты в Excel (43348, 43347 и т. Д.).

Пример вектора моих данных и того, что я пытаюсь выполнить, выглядит следующим образом:

> x<- c("43347", "43348", "OPEN")
> x<- as.Date(x, format = "%m/%d/%Y", origin = "1899-12-30")

В результате все значения в x становятся «NA».

Кто-нибудь знает, как я могу дать R команду только изменить 43347 и 43348 на указанную дату и оставить «ОТКРЫТО» как есть?Должен ли я использовать что-то другое, чем read_xls?

Отказ от ответственности: я работаю с большим набором данных, поэтому было бы непрактично разбивать столбец вручную, например:

> x1<- c(43347, 43348)
> y1<- c("OPEN")

Представьте себе этот вектор с 1500+ значениями.

1 Ответ

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

Это то, что вы хотите?

данные:

x <- c("43347", "43348", "OPEN")

код:

ifelse(is.na(as.numeric(x)),x, as.character(as.Date(as.numeric(x), origin = "1899-12-30")))

результат:

#[1] "2018-09-04" "2018-09-05" "OPEN"    

Более быстрая версия:

IND <- !is.na(as.numeric(x))
x[IND] <- as.character(format(as.Date(as.numeric(x[IND]), origin = "1899-12-30"), format = "%m/%d/%Y"))
remove(IND)
x
#[1] "09/04/2018" "09/05/2018" "OPEN"  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...