我的数据框就像下面的简单框一样,具有更多的列和行。
我的目标是使用匹配的 pval 和 value_IC 列,基于某些ifelse()输出,为每个“模型”添加一个新列。
在这里,模型是线性的,beta和emax。
到目前为止,我发现的最接近的问题是
始终使用相同的“第二”列。
data <- data.frame(pval.linear.orig = c(0.01, 0.06, 0.02),
pval.beta.orig = c(0.06, 0.02, 0.01),
pval.emax.orig = c(0.03, 0.01, 0.07),
value_IC.linear.orig = c(-5, NA, -4),
value_IC.beta.orig = c(NA, NA, -10),
value_IC.emax.orig = c(NA, -11, NA))
pval.linear.orig pval.beta.orig pval.emax.orig value_IC.linear.orig value_IC.beta.orig value_IC.emax.orig
1 0.01 0.06 0.03 -5 NA NA
2 0.06 0.02 0.01 NA NA -11
3 0.02 0.01 0.07 -4 -10 NA
如果我只想要一个模型,比如说beta版,我会这样做:
library(dplyr)
data_new <- data %>% mutate(conv.beta.orig = case_when(
pval.beta.orig > 0.025~ NA,
pval.beta.orig <= 0.025 & !(is.na(value_IC.beta.orig)) ~ TRUE,
pval.beta.orig <= 0.025 & is.na(value_IC.beta.orig) ~ FALSE))
data_new
pval.linear.orig pval.beta.orig pval.emax.orig value_IC.linear.orig value_IC.beta.orig value_IC.emax.orig conv.beta.orig
1 0.01 0.06 0.03 -5 NA NA NA
2 0.06 0.02 0.01 NA NA -11 FALSE
3 0.02 0.01 0.07 -4 -10 NA TRUE
以获得 conv.beta.orig 列。列名不必完全采用这种格式。
我现在的问题是使用上面的pval.MODEL.orig和value_IC.MODEL.orig列使用的所有模型都这样做。
非常感谢您的帮助! 这是我有史以来提出的第一个问题,如果我应该重新编写某些内容/错过某些内容或在已经存在的情况下未发现此问题等,请让我现在。