Xts формат data.frame - PullRequest
       12

Xts формат data.frame

0 голосов
/ 08 ноября 2019

У меня есть датафрейм с двумя столбцами. Первый столбец содержит данные POSIXct, а второй содержит несколько целых значений выборки. Я не могу понять, как конвертировать этот фрейм данных в xts.

Мои данные:

structure(list(SampleDateTime = list(1422835200000, 1423353600000, 
    1423958400000, 1433030400000, 1433635200000, 1434326400000, 
    1434844800000, 1444521600000, 1445731200000, 1453593600000, 
    1.455408e+12, 1420934400000, 1424563200000, 1425772800000, 
    1426982400000, 1430006400000, 1.431216e+12, 1.440288e+12, 
    1448150400000, 1460851200000), SampleValue = list(9L, 3L, 
    2L, 1733L, 19L, 6L, 1L, 17L, 7L, 23L, 147L, 1L, 17L, 1L, 
    1L, 19L, 1L, 11L, 2L, 91L), Dttm = structure(c(1107216000, 
1107734400, 1108339200, 1117411200, 1118016000, 1118707200, 1119225600, 
1128902400, 1130112000, 1137974400, 1139788800, 1105315200, 1108944000, 
1110153600, 1111363200, 1114387200, 1115596800, 1124668800, 1132531200, 
1145232000), class = c("POSIXct", "POSIXt"), tzone = "")), row.names = c("feature$attributes", 
"feature$attributes1", "feature$attributes2", "feature$attributes3", 
"feature$attributes4", "feature$attributes5", "feature$attributes6", 
"feature$attributes7", "feature$attributes8", "feature$attributes9", 
"feature$attributes10", "feature$attributes11", "feature$attributes12", 
"feature$attributes13", "feature$attributes14", "feature$attributes15", 
"feature$attributes16", "feature$attributes17", "feature$attributes18", 
"feature$attributes19"), class = "data.frame")
> 

Я использую это, чтобы попытаться выполнить конвертацию:

q <- as.xts(t, order.by = t$Dttm, dateFormat="POSIXct", frequency=NULL, RECLASS=FALSE)

Я получаю следующие ошибки: Ошибка в coredata.xts (x): в настоящее время неподдерживаемый тип данных

Любая помощь приветствуется. Я не могу понять, почему он говорит, что DF не поддерживается, когда он говорит, что они есть в документации ??

1 Ответ

2 голосов
/ 08 ноября 2019

Как указано в комментариях, ваши данные находятся в странном формате, в котором первые два столбца фрейма данных представляют собой сами списки, а не числовые столбцы, поэтому сначала снимите список с каждого столбца (это не изменит столбцы, которые уже не являются списками). ) дает dat.u, а затем конвертировать. Мы предполагаем, что dat - это данные, показанные через вопрос dput.

dat.u <- replace(dat, TRUE, lapply(dat, unlist))
z <- read.zoo(dat.u, index = "Dttm")
x <- as.xts(z)
...