在创建图形之前,我正在尝试处理原始数据的数据框架。我观察到"TMED7_normalized“列中的值,我希望将其规范化。这些观察值是在不同的测试条件下收集的,如列"siRNA“所示。此外,观察是从不同的来源收集的,如"Blot“一栏所示。我现在想做的是,在"siCtrol“的条件下,总是通过行中的值来规范化TMED7_normalized的值。此外,我想为每一组不同情况的人做这件事。例如:取前三个条目,按第四个条目进行归一化。进入5-9区,在10号前恢复正常。关于如何以自动化的方式完成这项工作,您有什么想法吗?这是我的数据框:
example_data
Blot siRNA TMED7_normalized
<chr> <chr> <dbl>
1 FK01_KW26_02 siRNF5 2.57
2 FK01_KW26_02 siRNF170 2.10
3 FK01_KW26_02 siRNF5_siRNF185 2.24
4 FK01_KW26_02 siCtrol 1.81
5 FK01_KW27_01 siRNF5 2.36
6 FK01_KW27_01 siRNF170 1.64
7 FK01_KW27_01 siHrd1 2.66
8 FK01_KW27_01 siRNF5_siHrd1 2.09
9 FK01_KW27_01 siRNF170_siHrd1 2.53
10 FK01_KW27_01 siCtrol 1.13
# ... with 24 more rows每一个想法和帮助都将深表感谢。干杯
发布于 2020-08-13 18:43:44
我假设,通过标准化,您的意思是将每个测试的TMED7_normalized值除以相应的控件?
您可以使用dplyr来做到这一点。
example_data %>%
group_by(Blot) %>%
mutate(TMED7_normalized = TMED7_normalized / TMED7_normalized[siRNA == "siCtrol"])
# A tibble: 10 x 3
# Groups: Blot [2]
Blot siRNA TMED7_normalized
<chr> <chr> <dbl>
1 FK01_KW26_02 siRNF5 1.42
2 FK01_KW26_02 siRNF170 1.16
3 FK01_KW26_02 siRNF5_siRNF185 1.24
4 FK01_KW26_02 siCtrol 1
5 FK01_KW27_01 siRNF5 2.09
6 FK01_KW27_01 siRNF170 1.45
7 FK01_KW27_01 siHrd1 2.35
8 FK01_KW27_01 siRNF5_siHrd1 1.85
9 FK01_KW27_01 siRNF170_siHrd1 2.24
10 FK01_KW27_01 siCtrol 1 如果你想做一些不同的操作来规格化,那就适当地编辑我的代码。在group_by(Blot)之后,使用mutate()和TMED7_normalized来表示当前位置,使用TMED7_normalized[siRNA == "siCtrol"]来表示每个组的控制值。
https://stackoverflow.com/questions/63392502
复制相似问题