Как устранить «Ошибка в as.Date.OtherDate (death): NA в вызове внешней функции (arg 4)» - PullRequest
1 голос
/ 20 июня 2020

Мне нужно преобразовать персидскую дату в немецкую, используя библиотеку ConvCalendar. вектор символов выглядит следующим образом:

str(df$death_date)

 chr [1:286] NA NA NA NA "1399/03/12" NA NA NA NA NA NA NA NA NA "1399/03/25" NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA ...

death <- OtherDate(day=substr(df$death_date,9,10),
                 month=substr(df$death_date,6,7),
                 year=substr(df$death_date,1,4),
                 calendar="persian")

как только я go преобразовал смерть в грегорианскую, используя as.Date (death), выйдет следующая ошибка:

Error in as.Date.OtherDate(death) : NAs in foreign function call (arg 4)

could кто-нибудь скажите, пожалуйста, в чем дело?

1 Ответ

0 голосов
/ 20 июня 2020

Пакет ConvCalendar находился в архиве долгое время a go, см. CRAN :

Архивировано 24.05.2018, поскольку проблемы с проверкой не были устранены, несмотря на напоминания .

Если он установлен из исходного кода, будет работать следующее:

library(ConvCalendar)

y <- x[!is.na(x)]
y <- as.POSIXlt(y, format = '%Y/%m/%d', origin = '1970-01-01')
pers <- OtherDate(day=y$mday, month=y$mon+1, year=y$year, calendar="persian")
as.Date(pers)
#[1] "0120-06-02" "0120-06-15"

Данные

x <- scan(what = character(), text = '
NA NA NA NA "1399/03/12" NA NA NA NA NA NA NA NA NA "1399/03/25" NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...