2016-10-27 7 views
2

У меня есть кадр данных в R, который я передаю в H2O с помощью as.h2o().Как интерпретировать тип данных H2O?

dataset.h2o <- as.h2o(dataset,destination_frame = "dataset.h2o") 

Ведение ул() на фрейме данных, мы можем видеть, что week_of_date класс имеет тип данных Дата

$ primary_account_id: ИНТ 31 31 31 31 31 31 31 31 31 31 .. .

$ week_of_date: Дата, формат: "2015-08-31" "2015-09-07" "2015-09-14" "2015-09-21" ...

Однако , если смотреть в H2O Flow, кажется, что преобразовывались к типу данных называется время - которое имеет формат

week_of_date времени 0 0 0 0 1440943200000,0 +1447592400000,0 +1444480409625,8884 2013362534,5706

Когда я вернуть данные в R с использованием as.data.frame

returned.dataset <- as.data.frame(dataset.h2o) 

она хранится в формате, который я не могу понять, и поэтому разобрать назад

$ primary_account_id: ИНТ 31 31 698 1060 1060 1060 1060 1060 1060 1133 ...

$ week_of_date: Класс Num 'POSIXct' [1: 194] 1442757600000 1446382800000 1446382800000 1442152800000 1442757600000 ...

Не могли бы вы мне точку в направлении, как я могу добиться лучшего взаимодействия с датами между R и H2O?

Спасибо!

ответ

0

Это ошибка в h2o. H2o возвращает дату в миллисекундах, а R - секунды. См. Jira issue 3434.

Что вы можете сделать в то же время является перекодировать столбец даты: as.Date(structure(returned.dataset$week_of_date/1000, class = c("POSIXct", "POSIXt")))

0

Приведи к ответу на phiver для более подробного ответа, но еще один простой обходной путь будет преобразовать столбцы даты, чтобы символ перед передачей на H2O (если вам не нужен столбец в формате даты в H2O). Вот простой пример.

# construct a sample df with a date format column 
df <- data.frame(week_of_date = as.Date(c('2015-09-29','2015-10-05'))) 
str(df$week_of_date) 
Date[1:2], format: "2015-09-29" "2015-10-05" 

# convert the column to H2O 
df$week_of_date <- as.character(df$week_of_date) 
str(df$week_of_date) 
chr [1:2] "2015-09-29" "2015-10-05" 

# convert to H2OFRAME and pass back to R data.frame and re-convert to date 
df.hex <- as.h2o(df) 
df2 <- as.data.frame(df.hex) 
df2$week_of_date <- as.Date(df2$week_of_date) 
str(df2$week_of_date) 
Date[1:2], format: "2015-09-29" "2015-10-05" 
Смежные вопросы