根据您的解释,我可以建议这个简单的函数,该函数将输入患者的心率和年龄范围,并根据此特定范围的正常密度返回百分位数。
my.quantile = function(myrange, heart.rate){
table <- data.frame('range'= c("range1", "range2", "range3"),
'mean' = c(120, 90, 60),
'sd' = c(12, 15, 30))
res <- pnorm(q = heart.rate,
mean = subset(table, range==myrange)$mean,
sd = subset(table, range==myrange)$sd)
return(res*100)
}
### my.quantile("range1", 140)
### [1] 95.22096
根据您所说的,如果它完全正常,您只需要每个范围的均值和方差,对吗?您可以根据呼吸频率对其进行调整。
编辑:为了从您的分位数表中检索正态分布参数,假设您获得的分位数相当精确:
i/ 你的平均参数正好是第 50 个百分位
ii/ 您可以通过取任何其他百分位数来找到标准差,例如,假设您的第 90 个百分位数是 73 拍,第 50 个百分位数是 61 拍:
(73-61)/qnorm(0.90)
### [1] 9.36365
9.36 是您的标准差。从这里开始自动化它应该不是很难。
注意:如果您的百分位数据不是很精确,您可能需要对每个百分位值重复操作并取平均值。