#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...