按多列分组并从 R 中的另一列分配值

问题描述

我在 R 中有一个如下所示的数据集:

enter image description here

我想添加一个新列“开始输出”,它基本上从 Time = 0 时的输出获取值,但也按温度对它们进行分组。示例解决方案如下:

enter image description here

我尝试了以下代码,但它仅适用于第一批,不适用于所有批次。 df$输出[df$时间 == 24 | df$Time == 48 ]

我尝试使用 group_by() 和 mutate,但没有成功。任何帮助表示赞赏!

解决方法

df %>%
  group_by(Temp) %>%
  mutate(`Starting Output` = ifelse(Time==0,Output,NA)) %>%
  tidyr::fill(`Starting Output`,.direction = "down") %>%
  ungroup()

# A tibble: 6 x 5
  Batch  Temp  Time Output `Starting Output`
  <chr> <dbl> <dbl>  <dbl>             <dbl>
1 A        15     0     12                12
2 A        15    24     34                12
3 A        15    48     36                12
4 A        25     0     13                13
5 A        25    24     22                13
6 A        25    48     24                13