从线性回归输出中获取每组的平均分数

Getting mean score for each group from linear regression output

我 运行 线性回归预测按性别、种族及其交互作用的生活满意度。

lm2 <-lm(nids$satisfaction~nids$male+nids$race+nids$male:nids$race)

这是一个输出:

Call:
lm(formula = nids$satisfaction ~ nids$male + nids$race + nids$male:nids$race)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.6613 -1.3366 -0.0485  1.7378  4.9515 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          4.17751    0.05467  76.410  < 2e-16 ***
nids$male            0.39318    0.08564   4.591 4.45e-06 ***
nids$race            0.87095    0.03421  25.459  < 2e-16 ***
nids$male:nids$race -0.17947    0.05261  -3.411 0.000649 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.358 on 12016 degrees of freedom
Multiple R-squared:  0.07414,   Adjusted R-squared:  0.07391 
F-statistic: 320.7 on 3 and 12016 DF,  p-value: < 2.2e-16

我需要提供 (1) 每个性别组以及 (2) 每个种族组(总共 4 个)的生活满意度平均分。

那么,我该如何使用 R 来实现呢?我知道我可以汇总数据,但有迹象表明我可以使用一些系数来计算性别和种族群体的平均满意度水平。

非常感谢您。

一个快速的方法:

malenids <- nids[nids$male == 1, ]
femalenids <- nids[nids$male == 0, ]
lapply(split(malenids, malenids$race), function(x) mean(x$satisfaction))
lapply(split(femalenids, femalenids$race), function(x) mean(x$satisfaction))