Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在多对列上迭代case_when语句_R_Dplyr_Mutate_Case When - Fatal编程技术网

R 在多对列上迭代case_when语句

R 在多对列上迭代case_when语句,r,dplyr,mutate,case-when,R,Dplyr,Mutate,Case When,我有一个数据框,有27对列,其中第一列是一个带有麻醉品处方名称的字符向量(“codein”、“氢可酮”、“氢吗啡酮”等),第二列是一个带有剂量的数字向量,我想使用剂量和基于处方的换算系数计算口服吗啡当量。名称和转换系数如下所示 可待因:0.15 氢可酮:1 氢吗啡酮:4 羟考酮:1.5 曲马多:0.1 吗啡:1 我编写了用一对列执行此操作的代码,使用case_-when语句相当简单 ome_3 <- ome_2%>%mutate(morphine_eq_1 = case_when(s

我有一个数据框,有27对列,其中第一列是一个带有麻醉品处方名称的字符向量(“codein”、“氢可酮”、“氢吗啡酮”等),第二列是一个带有剂量的数字向量,我想使用剂量和基于处方的换算系数计算口服吗啡当量。名称和转换系数如下所示

可待因:0.15 氢可酮:1 氢吗啡酮:4 羟考酮:1.5 曲马多:0.1 吗啡:1

我编写了用一对列执行此操作的代码,使用case_-when语句相当简单

ome_3 <- ome_2%>%mutate(morphine_eq_1 = case_when(str_detect(Pre_Op_Drug_Name_1, "orco")~Pre_Op_Dose_1__mg_,
                                                str_detect(Pre_Op_Drug_Name_1, "ydrocodone")~Pre_Op_Dose_1__mg_,
                                                str_detect(Pre_Op_Drug_Name_1, "orphone")~Pre_Op_Dose_1__mg_ * 4,
                                                str_detect(Pre_Op_Drug_Name_1, "xycodone")~Pre_Op_Dose_1__mg_ * 1.5,
                                                str_detect(Pre_Op_Drug_Name_1, "ramadol")~Pre_Op_Dose_1__mg_/10,
                                                str_detect(Pre_Op_Drug_Name_1, "ilaudid")~Pre_Op_Dose_1__mg_ * 4,
                                                str_detect(Pre_Op_Drug_Name_1, "xycontin")~Pre_Op_Dose_1__mg_ * 1.5))
ome_3%突变(吗啡=case_时(str_检测(Pre_Op_药物名称,orco))~Pre_Op_剂量,
str_detect(Pre_-Op_-Drug_-Name_-1,“hydrocodone”)~Pre_-Op_-Dose_-1_-mg_,
str_detect(Pre_Op_Drug_Name_1,“orphone”)~Pre_Op_Dose_1_mg_*4,
str_detect(Pre_Op_Drug_Name_1,“xycodone”)~Pre_Op_Dose_1_mg_*1.5,
str_detect(预处理药物名称,拉马多)~Pre_-Op_剂量,mg/10,
str_detect(Pre_Op_Drug_Name_1,“ilaudid”)~Pre_Op_Dose_1_mg_*4,
str_detect(Pre_Op_Drug_Name_1,“xycontin”)~Pre_Op_Dose_1_mg_*1.5))
但我如何在所有27对列上迭代相同的mutating(case_-when)语句,以生成27个新的对等列?一天后我不知所措,尝试了for循环或基本的元编程都没有用


谢谢大家

如果您想使用相同的代码,则考虑<代码> MutoType AT(VARS(您的CyrnNeX),~~(StrugDebug)、“<”/“代码>,即更改PrIyopopRug GnNeMeE1到”。< /代码>如果您想使用相同的代码,则考虑<代码> MutoType AT(VARS(您的CyrnNeX)),~~(StrugDebug(,””< /C> >,即将PrimyOpLoopGyNAMEY1更改为<代码> < <代码> >