I have a list where one of the levels is duplicative and unnecessary. The first level is a list of unique accounts, which are each lists containing fueltype, fuelunits, description, modeltypes, and usagedata. The previous four are single value descriptors, but usagedata should be a list of 12 observations. Instead, there is an additional level between usagedata and the observations. I cannot figure out how to unlist or flatten this such that usagedata is a list of 12.
Example dataset for reproduction
library(dplyr)
my_data <- 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"))
  )
Formatting code below. I use a function to create the usage data variable list, which is assigned to df.1. I wasn't sure how to do this within the transmute function itself.
my_fun <- function(x) {
  usagedata <- vector(mode = 'list', length = 3)
  for (i in 1:3){
    temp <- x %>%
      transmute(
        Time = select(x, starts_with("Time"))[i],
        Var = max(select(x, starts_with("Var"))[i])
      ) 
    temp <- (split(temp, seq(nrow(temp))))
    usagedata[i] <- temp
  }
  return(usagedata)
} 
df.1 <- vector(mode = 'list', length = 3)
for (i in 1:3){
  temp <- my_fun(my_data[i,]) 
  df.1[[i]] <- temp
}
inputdata <- my_data %>%
  transmute(
    Name = Id.1,
    Unit = Id.2,
    usagedata = df.1
  )
inputdata <- split(inputdata, seq(nrow(inputdata)))
Output of dput(head(inputdata). You can see that there is a double list for usagedata. I need that to be a single list.
list(`1` = structure(list(Name = "A", Unit = "D", usagedata = list(
    list(structure(list(Time = structure(list(Time.1 = "Jan"), row.names = 1L, class = "data.frame"), 
        Var = 100), row.names = 1L, class = "data.frame"), structure(list(
        Time = structure(list(Time.2 = "Feb"), row.names = 1L, class = "data.frame"), 
        Var = 75), row.names = 1L, class = "data.frame"), structure(list(
        Time = structure(list(Time.3 = "Mar"), row.names = 1L, class = "data.frame"), 
        Var = 80), row.names = 1L, class = "data.frame")))), row.names = 1L, class = "data.frame"), 
    `2` = structure(list(Name = "B", Unit = "E", usagedata = list(
        list(structure(list(Time = structure(list(Time.1 = "Jan"), row.names = 2L, class = "data.frame"), 
            Var = 150), row.names = 2L, class = "data.frame"), 
            structure(list(Time = structure(list(Time.2 = "Feb"), row.names = 2L, class = "data.frame"), 
                Var = 125), row.names = 2L, class = "data.frame"), 
            structure(list(Time = structure(list(Time.3 = "Mar"), row.names = 2L, class = "data.frame"), 
                Var = 120), row.names = 2L, class = "data.frame")))), row.names = 2L, class = "data.frame"), 
    `3` = structure(list(Name = "C", Unit = "F", usagedata = list(
        list(structure(list(Time = structure(list(Time.1 = "Jan"), row.names = 3L, class = "data.frame"), 
            Var = 200), row.names = 3L, class = "data.frame"), 
            structure(list(Time = structure(list(Time.2 = "Feb"), row.names = 3L, class = "data.frame"), 
                Var = 175), row.names = 3L, class = "data.frame"), 
            structure(list(Time = structure(list(Time.3 = "Mar"), row.names = 3L, class = "data.frame"), 
                Var = 140), row.names = 3L, class = "data.frame")))), row.names = 3L, class = "data.frame"))
