我有列出一个县疾病的数据,以及2011-2022年的年发病率.我已经创建了以下模拟数据的子集:

df <- data.frame(Year = as.integer(c(2020, 2021, 2022, 2020, 2021, 2022)),
                 Disease = c("Chlamydia", "Chlamydia", "Chlamydia", "Gonorrhea", "Gonorrhea", "Gonorrhea"),
                 Rate = as.numeric(c(30.75, 46.97, 98.75, 46.97, 29.34, 22.97)))

我想做的是按疾病分组,取最大年率值(本例中最大年率为2022年),然后从最小年率中减go 它(这里的最小年率为2020年).理想的输出将如下所示:

> df_dif
  Disease_dif Rate_Dif
1   Chlamydia       68
2   Gonorrhea      -24

这些变量名称和df名称是完全可扩展的,我所需要的是按疾病分组并减go 最小和最大年值之间的差异的方法.我对编码有点陌生,如果你能解释一下你的代码,我将不胜感激.非常感谢.

推荐答案

library(dplyr)

max_rates <- df |>
  filter(max(Year) == Year, .by = Disease)
  select(Disease, max = Rate)
min_rates <- df |>
  filter(min(Year) == Year, .by = Disease)
  select(Disease, min = Rate)

max_rates |> 
  left_join(min_rates) |> 
  mutate(Disease, Rate_Dif = max - min, .keep = "none")

    Disease Rate_Dif
1 Chlamydia       68
2 Gonorrhea      -24

R相关问答推荐

基于R中的GPS点用方向箭头替换点

ggplot 2中的地块底图(basemaps_gglayer()不起作用)

如何根据条件计算时差(天)

使用ggsankey调整Sankey图中单个 node 上的标签

如何使下一个按钮只出现在Rshiny 的一段时间后?""

如何使用列表中多个列表中的第一条记录创建数据框

如何对2个列表元素的所有组合进行操作?

为什么我使用geom_density的绘图不能到达x轴?

如何在R中平滑地绘制线图(不拟合)?

`夹心::vcovCL`不等于`AER::tobit`标准错误

如何在R中使用hmm TMB提前一步预测观察到的状态?

将工作目录子文件夹中的文件批量重命名为顺序

变长向量的矢量化和

无法将条件case_when()应用于使用!!创建的新变量Mutations

快速合并R内的值

为什么将负值向量提升到分数次方会得到NaN

按组使用dummy r获取高于标准的行的平均值

在ggplot2图表中通过端点连接点

将某个阈值以下的列中的值分类到不同的列中,否则保持该列的原样

如何创建直方图与对齐的每月箱?