Я пытаюсь организовать свой набор данных для последующего анализа (анализ тенденций, построение графиков и т. Д.).Данные представлены в виде списка, и я хотел бы преобразовать его во фрейм данных.
Мой полный набор данных будет содержать около 300 скважин и данные за 40 лет.Каждая скважина имеет различную продолжительность записи, т.е. некоторые скважины будут иметь 40-летнюю историю, а некоторые - 5 лет.В этом примере я использую только две скважины и данные за 1 год.
Из других постов мне удалось объединить объекты зоопарка, создав столбец для каждой скважины.Однако я хотел бы, чтобы столбцы также содержали названия сайтов.
Я отмечаю, что дата / время не отображаются в отдельном столбце;Я не уверен, если это представляет проблему позже.Также вызывает беспокойство количество значений даты / времени, которые я сгенерирую, объединяя все значения даты / времени вместе.Мне интересно, есть ли лучший способ, чем я планировал.
dput(z)
list(structure(c(-3.221, -3.601, -3.321, -2.861, -2.661, -2.491,
-2.297, -2.373, -2.348, -2.216, -2.569, -2.676), SiteName = "Well..3737 7D Flaxmere", Measurement = "Depth From Land Surface", Units = "m", InterpolationMethod = "Quasi-continuous", DataType = "SimpleTimeSeries", TSType = "StdSeries", class = "zoo", index = structure(c(1515061200L,
1517484600L, 1519901100L, 1522761900L, 1525177200L, 1528199400L,
1530619800L, 1533209100L, 1535978400L, 1538994000L, 1541071500L,
1544693700L), class = c("POSIXct", "POSIXt"), tzone = "UTC")),
structure(c(4.30654362318781, 3.08465060629183, 3.69719825206464,
4.22951094416319, 4.74166852727183, 5.25868509480613, 5.37266948414152,
5.24168682648358, 5.09669530682964, 4.71066298287734, 5.05269565318106,
4.74566920516198), SiteName = "Well...222 Comminutor Stn", Measurement = "Depth From Land Surface", Units = "m", InterpolationMethod = "Quasi-continuous", DataType = "SimpleTimeSeries", TSType = "StdSeries", class = "zoo", index = structure(c(1515139200L,
1517491200L, 1519898400L, 1522762800L, 1525179600L, 1528186800L,
1530528900L, 1533199500L, 1535962200L, 1539082200L, 1541160300L,
1544786400L), class = c("POSIXct", "POSIXt"), tzone = "UTC")))
Это то, что я пробовал до сих пор, и оно близко к работе - за исключением того, что у меня нет имен столбцов
test1 <- data.frame(setNames(do.call(cbind, unname(z)), names(z)))
Я бы хотел, чтобы вывод выглядел примерно такэто.
head(test1)
Date/Time Well...222 Comminutor Stn Well..3737 7D Flaxmere
2018-01-04 10:20:00 -3.221 NA
2018-01-05 08:00:00 NA 4.306544
2018-02-01 11:30:00 -3.601 NA
2018-02-01 13:20:00 NA 3.084651
2018-03-01 10:00:00 NA 3.697198
2018-03-01 10:45:00 -3.321 NA
Но в настоящее время это выглядит так
X1 X2
2018-01-04 10:20:00 -3.221 NA
2018-01-05 08:00:00 NA 4.306544
2018-02-01 11:30:00 -3.601 NA
2018-02-01 13:20:00 NA 3.084651
2018-03-01 10:00:00 NA 3.697198
2018-03-01 10:45:00 -3.321 NA