列之间和按索引的线性回归
Linear regression between columns and by index
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
,但不确定如何合并以按索引回归。
以下是如何使用 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)))
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
,但不确定如何合并以按索引回归。
以下是如何使用 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)))