使用dplyr如何将分组数据除以与此相关的特定值

时间:2018-11-15 17:35:27

标签: r dplyr

我有一个看起来像这样的数据框:

Dose Treatment PE
0 Gy  RT      .75
2 Gy  RT      .60
4 Gy  RT      .30
0 Gy  P1      .52
2 Gy  P1      .21
4 Gy  P1      .15

我想创建一个新列(SF),方法是将PE列中的所有值除以与治疗相关的剂量“ 0 Gy”

最终显示如下:

Dose Treatment PE  SF
0 Gy  RT      .75  1
2 Gy  RT      .60 .8
4 Gy  RT      .30 .4 
0 Gy  P1      .52  1
2 Gy  P1      .21 .40
4 Gy  P1      .15 .29

我该如何完成?可以使用dpylr获得此功能吗?

1 个答案:

答案 0 :(得分:1)

按“处理”分组后,将“剂量”为“ 0 Gy”的“ PE”值子集,然后使用该值划分整个“ PE”列

library(tidyverse)
df %>%
    group_by(Treatment) %>%
    mutate(SF = PE/PE[Dose == '0 Gy'])