#r
Вопрос:
Мои данные представляют собой список из двух фреймов данных и выглядят следующим образом:
[[1]]
Column strain N calc concentration
1 2 MG 3 1128.727 0.9765625
2 3 MG 3 2577.353 1.9531250
.
.
.
[[2]]
Column strain N calc concentration
1 2 MG 3 29.14334 0.9765625
2 3 MG 3 65.52667 1.9531250
.
.
.
Я провожу линейную регрессию по этому вопросу:
linear_regression <-
lapply(standardcurve_concentration,
lm,
formula = calc ~ concentration)
После этого я хочу получить коэффициент для каждой линейной регрессии.
Я использую простую задачу, чтобы получить коэффициенты:
linear_regression_sum <-
lapply(linear_regression,
coef)
В результате получается следующее:
[[1]]
(Intercept) concentration
12194.0968 703.3598
[[2]]
(Intercept) concentration
49.20808 30.91862
Но я хотел бы иметь два отдельных фрейма данных для этой линейной регрессии:
[[1]]
Intercept concentration
1 12194.0968 703.3598
[[2]]
Intercept concentration
1 49.20808 30.91862
Потому что я хочу использовать оба коэффициента в дальнейших расчетах.
Как я могу этого достичь?
Ответ №1:
Я действительно не понимаю эту структуру лапласа с линейной регрессией, но вот некоторый код, который, возможно, указывает в правильном направлении.
library(broom)
linear_regression_one <- lm(mpg ~ wt, mtcars)
linear_regression_one$coefficients
tidy_linear_regression_one <- tidy(linear_regression_one)
tidy_linear_regression_one_estimate <- tidy_linear_regression_one$estimate
linear_regression_two <- lm(mpg ~ am, mtcars)
linear_regression_two$coefficients
tidy_linear_regression_two <- tidy(linear_regression_two)
tidy_linear_regression_two_estimate <- tidy_linear_regression_two$estimate
regression_estimates <- rbind(tidy_linear_regression_one_estimate, tidy_linear_regression_two_estimate)
Ответ №2:
Вы можете сделать это за один lapply
вызов, преобразуя числовой вектор из coef
в фрейм данных.
result <- lapply(standardcurve_concentration, function(x) {
as.data.frame(t(coef(lm(calc ~ concentration, x))))
})