以R数据框中的其他列为条件创建新的二进制列

时间:2020-03-26 17:58:57

标签: r dataframe

尝试将评分系统输入R,以便我可以对其数据进行验证。

我想分配一个分数来设置二进制结果。

在这种情况下,如果我的患者的血红蛋白(Hb)<8(是1或否0)。当血红蛋白(Hb <8)= 1时,我想给满分5分。

| Patient number | Hb<8 |
|----------------|------|
| 1 | 0 |
| 2 | 1 |
| 3 | 0 |
| 4 | 1 |

如何根据Hb话语中的因子创建一个新的话语,其读数为0或5?

非常感谢

2 个答案:

答案 0 :(得分:0)

尝试一下:

df <- data.frame(patient = c(1, 2, 3, 4),
                 hb_smaller_8 = c(0, 1, 0, 1))

df <- df %>% mutate(score = ifelse(hb_smaller_8 == 1, 5, 0))
> df
  patient hb_smaller_8 score
1       1            0    NA
2       2            1     5
3       3            0    NA
4       4            1     5

答案 1 :(得分:0)

ifelse中使用简单的base R语句即可:

df$score <- ifelse(df$hb_smaller_8 == 1, 5, NA)

df
  patient hb_smaller_8 score
1       1            0    NA
2       2            1     5
3       3            0    NA
4       4            1     5