【问题标题】:Group by multiple columns and assign value from another column in R按多列分组并从 R 中的另一列分配值
【发布时间】:2021-05-16 13:44:06
【问题描述】:
我在 R 中有如下数据集:
我想添加一个新列“开始输出”,它基本上从输出列中获取时间 = 0 的值,但也按温度对它们进行分组。示例解决方案如下:
我尝试了以下代码,但它仅适用于第一批,不适用于所有批次。
df$输出[df$时间 == 24 | df$Time == 48 ]
我尝试使用 group_by() 和 mutate 但没有成功。任何帮助表示赞赏!
【问题讨论】:
标签:
r
dplyr
data-processing
【解决方案1】:
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