列与索引之间的线性回归

时间:2017-09-27 04:49:11

标签: r lm

HEALTH  CONINC  MARITAL Index MARITAL2                    HAPPY
3           441 5        1            2                        3
1          1764 5        1            2                        2
2          3087 5        1            2                        2
3          3087 5        2            2                        3
1          3969 2        2            5                        1
1          3969 5        2            2                        3
2          4852 5        2            2                        2
3          5734 3        2            3                        3

无论如何,按指数细分时,是否有相对于一列(例如,Happy)的每列的线性回归?

预期输出为Rsquare值:

HEALTH  CONINC  MARITAL Index MARITAL2   
 x       x       x         1      x      
 x       x       x         2      x      

尝试lapply,但不确定如何通过索引合并到回归。

1 个答案:

答案 0 :(得分:2)

以下是使用dplyr库通过索引进行单列回归的方法,收集R平方值:

library(dplyr)
df %>% group_by(Index) %>% 
    do(data.frame(HEALTH = summary(lm(HEALTH ~ HAPPY, data = .))$r.squared))

因此,要将其应用于第1列至第3列和第5列,您可以尝试:

l = lapply(c(1:3,5), function(i) df %>% group_by(Index) %>% 
       do(data.frame(r.squared = summary(lm(as.formula(paste(colnames(df)[i], "~ HAPPY")), data = .))$r.squared)))