我需要在 R 中的函数中包含"not on the same identifier"如何包含它?



我有一个分类函数,其中我需要包含"不在同一标识符"基于选择标准,但我不确定如何包括这一点。详情如下:

功能:基于al和pd测量的疾病分类:

classifyPerio <- function(x) {
if (x$num_teeth_al_6mm >= 2 & x$num_teeth_pd_5mm >= 1) {
return("Severe")
}
if (x$num_teeth_al_4mm >= 2 | x$num_teeth_pd_5mm >= 2) {
return("Moderate")
}
if (x$num_al_3mm >= 2 & (x$num_teeth_pd_4mm >= 2 | x$max_pd >= 5)) {
return("Mild")
}
return("No")
}

问题1:

基于此分类,

  • "num_teeth_al_4mm祝辞=";还包括所有"num_teeth_al_6mm>="和
  • "num_al_3mm祝辞=";还包括所有"num_teeth_al_4mm>="and "num_teeth_al_6mm>="

第二问题:

  • 有4种测量"al"one_answers";pd"每颗牙齿,只有最深的测量是有效的。也就是说,如果4个测量值如下:3 6 5 3 ->我们将这颗牙齿分类为6毫米及以上。所以这颗特殊的牙齿不应该被归类为"num_teeth__4mm">="或"num_al_3mm>="

同样的问题也存在于"num_teeth_pd_5mm>="one_answers"num_teeth_pd_4mm>=">

这就是我如何编码这些-也许问题在这里:

calcNumGt <- function(x, col.name, min_value) {
sum(unlist(x[x[[col.name]]]) >= min_value)
}
calcNumTeethGt <- function(x, col.name, min_value) {
tooth <- as.numeric(substr(x[[col.name]], 4, 5))
d <- data.frame(probe=x[[col.name]], tooth=tooth, pd=unlist(x[x[[col.name]]]))
max_pd_per_tooth <- aggregate(d$pd, list(d$tooth), max)
sum(max_pd_per_tooth[2] >= min_value)
}

mydata$num_al_3mm <- apply(mydata, 1, calcNumGt, "interp_al_names", 3)
mydata$num_teeth_al_4mm <- apply(mydata, 1, calcNumTeethGt, "interp_al_names", 4)
mydata$num_teeth_al_6mm <- apply(mydata, 1, calcNumTeethGt, "interp_al_names", 6)
mydata$num_teeth_pd_4mm <- apply(mydata, 1, calcNumTeethGt, "interp_pd_names", 4)
mydata$num_teeth_pd_5mm <- apply(mydata, 1, calcNumTeethGt, "interp_pd_names", 5)

我不确定如何在代码中指定这些。

第一题:
=>用else if代替if

编辑:
就像这样,条件将从上到下检查,只有第一个正检查将导致所需的返回。

classifyPerio <- function(x) {
if (x$num_teeth_al_6mm >= 2 & x$num_teeth_pd_5mm >= 1) {
return("Severe")
} else if (x$num_teeth_al_4mm >= 2 | x$num_teeth_pd_5mm >= 2) {
return("Moderate")
} else if (x$num_al_3mm >= 2 & (x$num_teeth_pd_4mm >= 2 | x$max_pd >= 5)) {
return("Mild")
} else {
return("No")
}
}

我不明白第二个问题虽然…

撒母耳

相关内容

最新更新