用 plyr 在每组中通过控制条件进行归一化
Normalising by control condition in each group with plyr
我有一组数据,格式如下:
Rep Day Drug GFP_per_cell
1 1 3d CTRL 2.0
2 1 3d A 1.0
3 1 3d B 4.0
4 2 3d CTRL 3.0
5 2 3d A 6.0
...
我想将每个重复 (Rep) 归一化为控件 (CTRL) - 即用控件划分每个重复的所有值 - 给出一个数据帧,例如:
Rep Day Drug GFP_per_cell
1 1 3d CTRL 1.0
2 1 3d A 0.5
3 1 3d B 2.0
4 2 3d CTRL 1.0
5 2 3d A 2.0
...
我一直在尝试使用 dplyr 中的 mutate 函数来做到这一点,这是我的尝试:
df %>%
group_by(Rep) %>%
mutate(df = GFP_per_cell / filter(Inhibitor == "CTRL")[,GFP_per_cell])
但这给了我错误:
Error: no applicable method for 'filter_' applied to an object of class "logical"
如何让 mutate 在每个组中除以 'CRTL' 条件?
如果每组 'Rep' 只有一个 'CTRL',则子集 'GFP_per_cell' 对应于 'Drug' 中的 'CTRL'(通过转换为逻辑向量)并使用它来规范化 'GFP_per_cell'
df %>%
group_by(Rep) %>%
mutate(GFP_per_cell = GFP_per_cell/GFP_per_cell[Drug=="CTRL"])
# Rep Day Drug GFP_per_cell
# <int> <chr> <chr> <dbl>
#1 1 3d CTRL 1.0
#2 1 3d A 0.5
#3 1 3d B 2.0
#4 2 3d CTRL 1.0
#5 2 3d A 2.0
我有一组数据,格式如下:
Rep Day Drug GFP_per_cell
1 1 3d CTRL 2.0
2 1 3d A 1.0
3 1 3d B 4.0
4 2 3d CTRL 3.0
5 2 3d A 6.0
...
我想将每个重复 (Rep) 归一化为控件 (CTRL) - 即用控件划分每个重复的所有值 - 给出一个数据帧,例如:
Rep Day Drug GFP_per_cell
1 1 3d CTRL 1.0
2 1 3d A 0.5
3 1 3d B 2.0
4 2 3d CTRL 1.0
5 2 3d A 2.0
...
我一直在尝试使用 dplyr 中的 mutate 函数来做到这一点,这是我的尝试:
df %>%
group_by(Rep) %>%
mutate(df = GFP_per_cell / filter(Inhibitor == "CTRL")[,GFP_per_cell])
但这给了我错误:
Error: no applicable method for 'filter_' applied to an object of class "logical"
如何让 mutate 在每个组中除以 'CRTL' 条件?
如果每组 'Rep' 只有一个 'CTRL',则子集 'GFP_per_cell' 对应于 'Drug' 中的 'CTRL'(通过转换为逻辑向量)并使用它来规范化 'GFP_per_cell'
df %>%
group_by(Rep) %>%
mutate(GFP_per_cell = GFP_per_cell/GFP_per_cell[Drug=="CTRL"])
# Rep Day Drug GFP_per_cell
# <int> <chr> <chr> <dbl>
#1 1 3d CTRL 1.0
#2 1 3d A 0.5
#3 1 3d B 2.0
#4 2 3d CTRL 1.0
#5 2 3d A 2.0