如何检查r中的5个条件中是否至少有3个为真?



我如何在r中创建一个代码,如果5个条件中至少有3个为真,那么它可以打印" sc"?

我已经尝试运行这段代码,但然后我得到这个错误消息:

Error: Problem withmutate()inputSCM.

x输入SCM必须是矢量,不能是formula对象

i输入SCM~...

datosB_graficas <- datosB_mice %>% mutate(SCM=case_when (((TG > 150) + (Glucosa_mg > 110) + 
(Per.Cintura > 88) + (PAS > 130) + 
(PAD> 88) + (HDL<40 )) >= 3)~ {"SCM"},
TRUE~ "Sano" )
structure(list(PAS = c(130, 100, 151, 134, 125, 146, 145, 127, 
109, 115), PAD = c(94, 61, 79, 74, 78, 88, 78, 92, 71, 68), Per.Cintura = c(95.9, 
101, 83.1, 103.2, 96.9, 94.4, 110.9, 92.8, 76.6, 77.3), HDL = c(38, 
48, 40, 70, 45, 39, 44, 51, 57, 51), TG = c(152, 92, 181, 99, 
103, 198, 166, 76, 111, 106), Glucosa_mg = c(74, 85, 91, 92, 
88, 86, 117, 85, 79, 85)), row.names = c(NA, -10L), class = "data.frame")

您可以使用as。将每个True和False转换为0或1。

datosB_mice%>%mutate(SCM=case_when(as.numeric(TG>150) + as.numeric(Glucosa_mg > 110) + as.numeric(Per.Cintura > 88) + as.numeric(PAS > 130) + as.numeric(PAD> 88) + as.numeric (HDL<40 ) >=3 ~ "SCM", TRUE ~ "Sano"))
PAS PAD Per.Cintura HDL  TG Glucosa_mg  SCM
1  130  94        95.9  38 152         74  SCM
2  100  61       101.0  48  92         85 Sano
3  151  79        83.1  40 181         91 Sano
4  134  74       103.2  70  99         92 Sano
5  125  78        96.9  45 103         88 Sano
6  146  88        94.4  39 198         86  SCM
7  145  78       110.9  44 166        117  SCM
8  127  92        92.8  51  76         85 Sano
9  109  71        76.6  57 111         79 Sano
10 115  68        77.3  51 106         85 Sano

不确定这是否是最优解,但你可以在这些条件下运行一个循环,有一个迭代器,我们叫它k,检查它们是否为真,如果任何条件为真,就给k加1。然后,如果在循环结束时k为>= 3,您将知道满足了3/5个条件。

datosB_graficas <- datosB_mice %>% mutate(SCM = case_when(as.numeric(TG > 150) + as.numeric(Glucosa_mg > 110) +  as.numeric(Per.Cintura > 88) + as.numeric(PAS > 130) +  as.numeric(PAD> 88) + as.numeric(HDL<40 ) >= 3 ~ "SCM", 
TRUE~ "Sano" ))
#OR
datosB_graficas <- datosB_mice %>% mutate(SCM = case_when(+(TG > 150) + +(Glucosa_mg > 110) +  +c(Per.Cintura > 88) + +(PAS > 130) +  +(PAD> 88) + +(HDL<40 ) >= 3 ~ "SCM", 
TRUE~ "Sano" ))
> datosB_graficas
PAS PAD Per.Cintura HDL  TG Glucosa_mg  SCM
1  130  94        95.9  38 152         74  SCM
2  100  61       101.0  48  92         85 Sano
3  151  79        83.1  40 181         91 Sano
4  134  74       103.2  70  99         92 Sano
5  125  78        96.9  45 103         88 Sano
6  146  88        94.4  39 198         86  SCM
7  145  78       110.9  44 166        117  SCM
8  127  92        92.8  51  76         85 Sano
9  109  71        76.6  57 111         79 Sano
10 115  68        77.3  51 106         85 Sano

相关内容

  • 没有找到相关文章

最新更新