r преобразовать вложенный фрейм данных в xts

#r #list #dataframe #nested #xts

#r #Список #фрейм данных #вложенный #xts

Вопрос:

Я пытаюсь обеспечить правильное преобразование из фрейма данных (с вложенными фреймами данных и списками) в xts. Я знаю, что лучшей отправной точкой является использование матрицы в качестве основы для создания xts, но я пытаюсь смоделировать, как я получаю исходные загруженные данные.

Мой вопрос: если мне нужно использовать базовую настройку с вложенными фреймами данных и списком, какие шаги, отличные от приведенного ниже сценария, мне нужно защитить, чтобы получить данные в xts?

Ниже вы найдете мой код. Обратите внимание, что он работает для получения xts, если раскомментировать полный раздел «3».

 # 1.creates the "top-level" df
date <- c("2016-10-10 21:32:00", "2016-10-10 21:33:00") # vector for creating the df
volume <- c(1,2) # vector for creating the df
df2 <- data.frame(date = date, volume = volume) # creating the df

# 2.change class of 2 columns
df2$date <- as.POSIXct(df2$date) #change from character to POSIX
df2$volume <- as.numeric(df2$volume) #change from character to numeric

# 3.create openPrices (set: base/bid/ask) < - Potential problem for creating xts
df2$openPrice <- data.frame(no2 = c(1,2)) # creating a nested df with 2 temp column/values.
df2$openPrice$bid <- list(1.1, 1.2) # creating a list within the nested df
df2$openPrice$ask <- list(2.2, 2.3) # creating a list within the nested df
df2$openPrice$no2 <- NULL # remove the 2 temp column/values

# 4.create an xts(myxts1), based on a dataframe (df2) with nested dataframes and lists.
myxts1 <- xts(df2[,-1],order.by = df2$date)
  

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

Комментарии:

1. df2 <- purrr::map_df(cbind(df2[,1:2], df2[,3]), unlist) ; xts::xts(df2[,-1], order.by = df2$date)

2. Привет. Ваши предложения дают: Ошибка в [.data.frame (df2, , 3): выбраны неопределенные столбцы