преобразование в posixct не удается - PullRequest
0 голосов
/ 04 июня 2018
> resulttable[3,1]
     UTC FORECAST TIME
1: 2018-05-01 00:30:00
> as.POSIXct(resulttable[3,1],format="%Y-%m-%d %H:%M:%S",tz="UTC")
Error in as.POSIXct.default(resulttable[3, 1], format = "%Y-%m-%d %H:%M:%S",  :       
do not know how to convert 'resulttable[3, 1]' to class “POSIXct”

Я не понимаю ошибку, потому что первый столбец таблицы результатов форматируется как posixct

> lapply(resulttable,class)
$`UTC FORECAST TIME`
[1] "POSIXct" "POSIXt" 

$`UTC FORECAST RECEIVE TIME`
[1] "POSIXct" "POSIXt" 

Почему as.POSIXct(resulttable[3,1],format="%Y-%m-%d %H:%M:%S",tz="UTC") приводит к ошибке?

edit: Здесь вывод стр:

> str(resulttable[3,1])
Classes ‘data.table’ and 'data.frame':  1 obs. of  1 variable:
 $ UTC FORECAST TIME: POSIXct, format: "2018-05-01 00:30:00"
 - attr(*, ".internal.selfref")=<externalptr> 

1 Ответ

0 голосов
/ 04 июня 2018

Обратите внимание на вывод str(resulttable[3,1]).Это говорит о том, что это объект классов data.table и data.frame.Следовательно, вы должны извлечь столбец или столбцы, которые вы хотите преобразовать в POSIXct, используя стандартные операторы извлечения.

resulttable[3, 1][[1]]                   # a vector
resulttable[3, 1]$`UTC FORECAST TIME`    # the same vector

Обратите внимание, что в имени столбца UTC FORECAST TIME есть пробелы, поэтому вам нужно поставитьэто между обратными кавычками.
Затем, чтобы сделать преобразование, вы можете использовать любую из вышеперечисленных форм.

as.POSIXct(resulttable[3,1][[1]], format = "%Y-%m-%d %H:%M:%S", tz = "UTC")
as.POSIXct(resulttable[3,1]$`UTC FORECAST TIME`, format = "%Y-%m-%d %H:%M:%S", tz = "UTC")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...