Я работаю с разными моделями, которые имеют разные параметры.Мне удобно хранить их в базе данных.Когда я их тяну, они приходят в виде кадра данных , который я называю df
.
В df
есть несколько столбцов, которые помогают дифференцировать каждый параметр друг от друга, так что каждая (вся) строка в конечном итоге уникальна.
Например,
col_1 <- c("model_1", "model_1", "model_1", "model_1", "model_2", "model_2", "model_2", "model_2")
col_2 <- c("category_1", "category_1", "category_2", "category_2", "category_1", "category_1", "category_2", "category_2")
col_3 <- c("type_1", "type_2", "type_1", "type_2", "type_1", "type_2", "type_1", "type_2")
col_4 <- c("name_1", "name_2", "name_3", "name_4", "name_5", "name_6", "name_7", "name_8")
col_5 <- c("value_1", "value_2", "value_3", "value_4", "value_5", "value_6", "value_7", "value_8")
mat <- matrix(c(col_1, col_2, col_3, col_4, col_5), ncol = 5)
df <- data.frame(mat)
names(df) <- c("model", "category", "type", "name", "value")
Мне было бы интересно преобразовать df
в список списка списка ... - назовите его deep_list
- так, чтобы каждый параметрзначение может быть доступно как
parameter <- deep_list$model_1$category_2$type_2$name_4
, и оно должно дать мне value_4
.
Я читал эту тему Преобразование data.frame в списоксписков и пытался наилучшим образом использовать функцию dlply()
из {plyr}
как
not_deep_list <- dlply(df,1,c)
или также
not_list <- df %>% group_by(model)
Я считаю, что это очень похожая проблема (отсюда и похожий заголовок).
Однако отличается тем, что требует обработки большего количества "слоев" (то есть столбцов) информации, следовательноимя и заголовок deep_list
...
Приветствуются любые предложения (рекурсии, циклы, векторизованные решения, функции из пакетов, которые я никогда не слышал, ...)
Спасибо!