使用 r 中的公式将 mutate 与条件语句结合起来

Combine mutate with conditional statement using a formula in r

我正在尝试根据包含公式的条件来改变我的数据框。我正在考虑将 mutate 与 if_else 或 case_when 结合使用(不确定两者之间的确切区别),但它对我不起作用。

我的数据框如下所示:

> dat.example
               t1             t2      Rg Rg_SE
1              WT            Fat  0.6818 0.0962
2              WT          FatPC  0.1853 0.1354
3              WT            DTD -0.1684 0.1232
4             Fat        DefCode      NA 0.1608

如果 Rg_SE 列中的值乘以 2 大于 Rg 列中的绝对值,我想做的是将 Rg 列中的值更改为 'NA'。应忽略列 Rg 中的 NA 值。 所以,输出应该是这样的:

> output
               t1             t2      Rg Rg_SE
1              WT            Fat  0.6818 0.0962
2              WT          FatPC      NA 0.1354
3              WT            DTD      NA 0.1232
4             Fat        DefCode      NA 0.1608

现在我已经使用了这段代码:

dat.example2 <- dat.example %>% mutate(Rg = if_else(Rg_SE*2 > abs(as.numberic(as.character(Rg))) ~ "NA"))

给我这个错误信息:

Error: Problem with `mutate()` input `Rg`.

x condition 必须是逻辑向量,而不是 formula 对象。 i 输入 Rgif_else(Rg_SE * 2 > abs(as.numberic(as.character(Rg))) ~ "NA").

有没有人知道如何做到这一点?非常感谢!

这是一种可能的解决方案:

library(tidyverse)
df <- read.table(text = "               t1             t2      Rg Rg_SE
1              WT            Fat  0.6818 0.0962
2              WT          FatPC  0.1853 0.1354
3              WT            DTD -0.1684 0.1232
4             Fat        DefCode      NA 0.1608", header = TRUE)

df %>% 
  mutate(Rg = ifelse((Rg_SE*2) > abs(as.numeric(as.character(Rg))), NA, Rg))
#   t1      t2     Rg  Rg_SE
#1  WT     Fat 0.6818 0.0962
#2  WT   FatPC     NA 0.1354
#3  WT     DTD     NA 0.1232
#4 Fat DefCode     NA 0.1608