【发布时间】:2021-09-27 13:26:44
【问题描述】:
我找到了很多关于 R 中 dplyr group_by() 函数的其他问题的解决方案,比如下面的一个,它建议 summarize_each() 函数简单地打印每个有条件定义的所有变量观察的 mean数据集中的一组行。
不幸的是,我需要能够创建一个新变量来附加到每一行,它是测量的平均值(在这个例子中是女性的身高),以便我以后可以将它用作回归中的预测变量.
对于此示例,是否有任何不同的解决方案允许某人根据组的平均值(在此示例中为身高)运行回归/分类过程?
DF <- data.frame(Height = rnorm(100, 170, 5),
Weight = rnorm(100, 55, 5),
Gender = c(rep("male", 50), rep("female", 50)))
BMI <- function(height,weight){(weight/(height)^2*10000)}
library(dplyr)
DF %>%
group_by(Gender) %>%
mutate(bmi = BMI(Height, Weight)) %>%
summarise(mean_bmi = mean(bmi))
【问题讨论】:
-
您能否详细说明为什么同时使用
group_by和mutate然后运行回归不是您想要的? -
这可能是解决方案 - 我不能说我知道如何去尝试它。在此解决方案中, group_by() 和 mutate() 似乎在运行此代码后生成的 summarise() 表中产生了所需的结果。但是,我不知道如何在回归中引用这些信息——这些代码所做的只是生成一个汇总表,其中包含每个组所需的平均值——它不会将这些值添加到 data_table 中,因此我可以稍后调用它在回归 model_form 中,就像我对任何其他变量一样。