我有一个数据集,其中包含一系列治疗(治疗变量),然后另一个人已根据其作用机理(机制变量)对这些治疗进行了分类。我想添加另一种动作机制类别(低体温),而我正为此而努力。
我做了一个小的数据框,作为一些治疗方法及其机制类别的示例。
Treatment <- c("Hypothermia", "CNS-1102", "Hypocapnia", "Dextrorphan", "Mannitol", "Caffeinol")
Mechanism <- c("Other", "Excitotoxicity", "Blood flow", "Excitotoxicity", "Fluid regulation", "Other")
df <- data.frame(Treatment, Mechanism)
我对体温过低很感兴趣,因此我想创建一个新的变量(称为Mechanism_extra),该变量是机制的副本,只是它将“体温过低”分类为自己的类别,而不是将“体温过低”病例归类为“其他”类别。我的实际数据集包含约8000个条目,所以我不能只是手动进行此操作。我试图用dplyr的mutate和ifelse来做到这一点,但是我的输出却不起作用。
df <- mutate(df, Mechanism_extra = ifelse(df$Treatment == "Hypothermia", "Hypothermia", df$Mechanism))
df$Mechanism_extra
在上面的代码中,我试图说“创建一个名为“ Mechanism_extra”的新变量,查看“治疗”中的药物,如果看到“体温过低”,则将“体温过低”放入新变量中,如果没有说“体温过低”,则写下原始变量作用机制”。但是我的输出看起来像这样:
[1]“体温过低”“ 2”“ 1”“ 2”“ 3”“ 4”
当我希望它看起来像这样时:
[1]“体温过低”“兴奋性中毒”“血液流动”“兴奋性中毒”“流体调节”“其他”
为什么有数字?我要去哪里错了?
您可以将其设为atibble
而不是data.frame
使用dplyr
,它将起作用。
library(dplyr)
Treatment <- c("Hypothermia", "CNS-1102", "Hypocapnia", "Dextrorphan", "Mannitol", "Caffeinol")
Mechanism <- c("Other", "Excitotoxicity", "Blood flow", "Excitotoxicity", "Fluid regulation", "Other")
df <- tibble(Treatment, Mechanism) # changed this
df %>%
mutate(Mechanism_extra = if_else(Treatment == "Hypothermia", "Hypothermia", Mechanism))
这是什么
# A tibble: 6 x 3
Treatment Mechanism Mechanism_extra
<chr> <chr> <chr>
1 Hypothermia Other Hypothermia
2 CNS-1102 Excitotoxicity Excitotoxicity
3 Hypocapnia Blood flow Blood flow
4 Dextrorphan Excitotoxicity Excitotoxicity
5 Mannitol Fluid regulation Fluid regulation
6 Caffeinol Other Other
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句