p.调整 R 中同一数据框中的多列
p. adjust for multiple columns in the same dataframe in R
我有一个包含数百个 p 值的数据框,我想为其计算 FDR 显着性。
我的数据框:
Trait p-value1 p-value2 p-value3 pvalue4
1 0.5 0.01 0.1 0.12
2 0.1 0.9 0.4 0.32
3 0.2 0.45 0.34 0.45
4 0.2 0.02 0.22 0.11
我使用以下脚本为每一列单独执行此操作(p-value1 上的示例):
fdr <- p.adjust (p-value1, method = "fdr", n = length(p-value1))
如何同时对所有列执行此操作?
假设您不需要为 PK 做,即 trait
列。在 R 版本 4.1.0
中试试这个
lapply(my_df[-1], \(x) p.adjust (x, method = "fdr", n = length(x)))
或者旧版本中的这个
lapply(my_df[-1], function(x) p.adjust (x, method = "fdr", n = length(x)))
你可以使用 dplyr:
library(dplyr)
df%>%mutate(across(contains("p-value"), ~ p.adjust(.x, method = "fdr", n = length(.x))))
如果您想要新列但要保留以前的列,您可以添加一个 .names
参数:
df%>%mutate(across(contains("p-value"), ~ p.adjust(.x, method = "fdr", n = length(.x)), .names="fdr_{.col}"))
我有一个包含数百个 p 值的数据框,我想为其计算 FDR 显着性。
我的数据框:
Trait p-value1 p-value2 p-value3 pvalue4
1 0.5 0.01 0.1 0.12
2 0.1 0.9 0.4 0.32
3 0.2 0.45 0.34 0.45
4 0.2 0.02 0.22 0.11
我使用以下脚本为每一列单独执行此操作(p-value1 上的示例):
fdr <- p.adjust (p-value1, method = "fdr", n = length(p-value1))
如何同时对所有列执行此操作?
假设您不需要为 PK 做,即 trait
列。在 R 版本 4.1.0
lapply(my_df[-1], \(x) p.adjust (x, method = "fdr", n = length(x)))
或者旧版本中的这个
lapply(my_df[-1], function(x) p.adjust (x, method = "fdr", n = length(x)))
你可以使用 dplyr:
library(dplyr)
df%>%mutate(across(contains("p-value"), ~ p.adjust(.x, method = "fdr", n = length(.x))))
如果您想要新列但要保留以前的列,您可以添加一个 .names
参数:
df%>%mutate(across(contains("p-value"), ~ p.adjust(.x, method = "fdr", n = length(.x)), .names="fdr_{.col}"))