Ошибка в as.Date.numeri c (значение): необходимо указать 'origin' - PullRequest
0 голосов
/ 01 мая 2020

У меня есть столбец дат с некоторыми пропущенными датами, и вместо него есть NA. Даты имеют формат даты и выражаются следующим образом: 2010-09-02

If picture helps

Я пытаюсь преобразовать, если в ячейке есть дата для преобразования это к 1, и если NA к 0.

Пока у меня есть:

LoanData$DefaultDate[!is.na(as.Date(LoanData$DefaultDate, origin = "1970-01-01")) == TRUE] <- 1

, и я продолжаю получать ошибку:

Error in as.Date.numeric(value) : 'origin' must be supplied

Погуглил ошибку, но все равно не нашел объяснения. Есть идеи?

1 Ответ

1 голос
/ 01 мая 2020

as.Date вернет NA, если обнаружит NA или формат указан неверно. Поэтому вы можете просто проверить, является ли это NA после преобразования с помощью is.na. Это возвращает логическое значение, которое можно инвертировать с помощью ! и преобразовать в целое число с помощью *1

v <- c("2010-09-02", NA, "2010-06-02")

(!is.na(as.Date(v)))*1
[1] 1 0 1

Скорее всего, в ваших данных:

LoanData$DefaultDate <- (!is.na(as.Date(LoanData$DefaultDate)))*1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...