【发布时间】:2018-08-13 17:43:16
【问题描述】:
我正在尝试根据嵌套数据框中的数据运行多个简单的线性回归,并使用 tidy() 将回归拟合系数存储在数据框中。我的代码块如下
library(tidyverse)
library(broom)
library(reshape2)
library(dplyr)
Factors <- as.factor(c("A","B","C","D"))
set.seed(5)
DF <- data.frame(Factors, X = rnorm(4), Y = rnorm(4), Z= rnorm(4))
MDF <- melt(DF, id.vars=c("Factors","X"))
DFF <- MDF %>% nest(-Factors)
如果它是一个包含许多列的数据框,我可以使用多个简单的线性回归
MDF %>% group_by(variable) %>% do(tidy(lm(value ~ X, data =.)))
或者如果它是一个嵌套数据框并且我必须运行一个简单的线性回归,我可以尝试
MDF %>% nest(-Factors)
%>% mutate(fit = map(data, ~lm(Y ~ X, data = .)), results = map(fit,tidy))
%>% unnest(results)
但我需要做的是结合上述两种情况。我需要从嵌套数据框中的数据运行多个简单的线性回归。
【问题讨论】:
标签: r dplyr regression reshape2