Существует ли функция R для создания вложенного списка по элементам в n списках?

#r #list #nested-lists

Вопрос:

Я переформатирую набор my_data данных для ввода в другую программу, для которой требуется очень специфический формат. У меня возникли трудности с получением соответствующего вложенного списка, который требуется, в частности, с usagedata элементом. По сути, usagedata это список из двух переменных var и time , каждая из которых содержит пять наблюдений. Вместо этого мне нужно usagedata составить список из 4 наблюдений, каждое с var элементами и time в качестве элементов.

Пример фрейма данных приведен ниже.

 my_data lt;- data.frame(  Id.1 = as.character(c("A", "B", "C")),  Id.2 = as.character(c("D", "E", "F")),  Var.1 = as.numeric(c(100,150,200)),  Time.1 = as.character(c("Jan","Jan","Jan")),  Var.2 = as.numeric(c(75,125,175)),  Time.2 = as.character(c("Feb", "Feb", "Feb")),  Var.3 = as.numeric(c(80,120,140)),  Time.3 = as.character(c("Mar", "Mar", "Mar")),  Var.4 = as.numeric(c(80,120,140)),  Time.4 = as.character(c("Apr", "Apr", "Apr")),  )  

Затем я создаю df.1 список Var и времени в виде одного элемента по строкам.

 df.1 lt;- my_data %gt;%  transmute(  var = transpose(as.list((select(., starts_with("Var"))))),  time = transpose(as.list((select(., starts_with("Time")))))  )  inputdata lt;- my_data %gt;%  transmute(  Name = Id.1,  Unit = Id.2,  usagedata = df.1   )  inputdata lt;- split(inputdata, seq(nrow(inputdata)))  

Однако конечным результатом является то, что usagedata элемент представляет собой список , содержащий один элемент var и time , каждый из которых содержит 4 наблюдения. Я хочу usagedata , чтобы это был список из 4, содержащий var по time одному элементу в каждом. Я не знаю, как это отформатировать. Любая помощь будет признательна.

Конечный результат должен следовать этой иерархии.

 inputdata list [3]  [[1]] list [3]  Name character  Unit character  usagedata list [4]  [[1]] list [2]  Var double  Time character  [[2]] list [2]  Var double  Time character etc...