Ошибка при преобразовании в формат даты в R - PullRequest
0 голосов
/ 26 апреля 2018

Это должно быть легко, но я застрял с этим. У меня есть data.frame с датами и значениями:

    class(var_data)
    [1] "tbl_df"     "tbl"        "data.frame"
    var_data
    A tibble: 42 x 2
       date                Tourists
       <dttm>                 <dbl>
     1 2006-03-01 00:00:00   55280.
     2 2006-06-01 00:00:00   84392.
     3 2006-09-01 00:00:00  132714.

Затем я хочу скопировать некоторые даты и значения в другие data.frame:

    var_list_DB$var_last[ii] <- var_data[last,"Tourists"]
    var_list_DB$var_date_start[ii] <- var_data[1,"date"]
    var_list_DB$var_date_last[ii] <- var_data[last,"date"] 

Но вместо дат я получил цифры:

    var_date_start   var_date_last  var_val_last 
    951868800        1496275200      10044.3162

И при попытке конвертировать в формат даты, получено сообщение об ошибке:

    as.Date(var_data[last,"date"], format = "%m/%d/%Y")
    Error in as.Date.default(x, ...) : 
      do not know how to convert 'x' to class “Date”

Я недавно обновился до версии 3.5.0, возможно, это проблема.

1 Ответ

0 голосов
/ 26 апреля 2018

Добавьте as.character преобразование перед передачей на дату и переместите var_data в data.frame формат, как в этих двух примерах с использованием as.Date и as.POSIXct:

var_data<-data.frame(var_data)
as.Date(as.character(var_data[,"date"]))
[1] "2006-03-01" "2006-06-01" "2006-09-01"
as.POSIXct(as.character(var_data[,"date"]))
[1] "2006-03-01 CET"  "2006-06-01 CEST" "2006-09-01 CEST"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...