r - 基于数据框中的分类变量的均值和 Sd 函数
问题描述
我有 30 位患者,他们有 100 个临床数据,例如体重、BMI、腰围等,我想根据他们的疾病状态为所有患者取平均值和 SD 例如我的数据集看起来像
Patient_id DateOfBirth Sex Weight1 Bmi1 Wasit1 Disease
204065 25-06-1995 Female 113.8 41.3 105.8 0
200214 09-12-1990 Female 90 35.6 108 1
191633 14-09-1971 Male 128.4 47 150 1
186156 22-09-1967 Male 157.3 51.4 145.6 0
我想要基于他们的疾病状态的输出,比如
Disease weight1Mean Weight1SD BMI1Mean BMI1SD Waist1Mean WaistSD
0 135 30.7 46.3 7.14 125.7 28.1
1 109 27.1 41.3 8.06 129 29.7
解决方案
your_df %>%
groupy_by(Disease) %>%
summarize(Weight1Mean = mean(Weight1),
Weight1SD = sd(Weight1
#Repeat for the rest of variables to sumamrize
)
您还可以使用summarize_at
代替summarize
:
#... %>%
summarize_at(vars(Weight1, BMI1, Waist1), list(Mean = mean, SD = sd))
或者summarize_if
:
#... %>%
summarize_if(is.numeric, list(Mean = mean, SD = sd))
如果您有想要从汇总中排除的数值变量,您可以将它们重新编码为因子或使用select
.
推荐阅读
- mysql - 如何创建一个表,其中包含一堆没有合并的其他表?
- c++ - 如何解决这个错误:Public 没有命名类型?
- c# - 如何在 protobuf-net.grpc 的消息中使用 IAsyncEnumerable?
- single-page-application - 使用 MSAL 进行 SPA 的多个用户会话
- swiftui - 在 ObservableObject 中引用 EnvironmentObject
- azure-ad-b2c - 有没有办法根据查询参数跳过编排步骤?
- angular - 如何在数据表中按日期排序,Angular Material
- matlab - 从 MATLAB 网站获取 MATLAB 链路预算分析文件
- java - 如何在 Java 中读取 JSON 文件?使用 JSON.simple 库
- django - Web 应用程序用户界面开发