Преобразовать в фрейм данных: модели соответствуют сводкам полных факторных подмножеств фрейма данных - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть фрейм данных с переменной и двумя факторами

test <- data.frame(variable = rnorm(100,10,5),
                   factor_1 = as.factor( rep(1:2,50)),
                   factor_2 = as.factor( rep(1:5,20)))

test <- test[test$variable>0,]

Я подгоняю распределение Вейбулла к полные факториальные подмножества и собираю подходящие параметры следующим образом:

DF <- split(test, list(test$factor_1, test$factor_2), drop = TRUE)

library(fitdistrplus)
fit.weibull <- function(DF) {
   scale <- summary(fitdist(DF[,1],'weibull'))[[1]][2]
   scale_sd <- summary(fitdist(DF[,1],'weibull'))[[3]][2]
   rbind(scale, scale_sd)
}
params <- lapply(DF, fit.weibull)

В качестве конечного результата я, по сути, хочу получить кадр данных, который включает в себя scale, scale_sd и factor_2 в качестве столбцов.Но мой текущий вывод трудно преобразовать в такой массив данных.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 20 февраля 2019

Хорошо, я нашел уродливое решение, которое работает:

scale <- c()
scale_sd <- c()
name <- c()

for (i in 1:length(params)) {

  scale[[i]] <- params[[i]][[1]]
  scale_sd[[i]] <- params[[i]][[2]]
  name[[i]] <- names(params)[i]

}

DF <- data.frame("name"= as.character(name),
                 "scale"= as.numeric(scale),
                 "scale_sd"= as.numeric(scale_sd))

Столбец name фактически включает оба фактора, поэтому каждая строка кадра данных представляет полное подмножество факториала.

...