我从最近的一篇文章中已经标准化了儿童心率和呼吸频率的正常值。我将它们复制到csv中用作R中的数据集。数据只是不同的年龄范围(从3个月到6个月,或1年到2年),然后是第1个百分位,第10个,第25个的心率,该年龄段的第50,75,90,99百分位数。
我想将患者数据与此参考表进行比较,以告诉我他们所处的百分位数。由于这是一个完全正常的分布,我不认为这是一项非常艰巨的任务,但它不在我的R范围之内,我似乎无法找到关于如何实现这一目标的任何好的信息。
答案 0 :(得分:0)
根据您的解释,我可以建议这个简单的功能,输入患者的心率和年龄范围,并根据此特定范围的正常密度返回%百分位数。
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
根据你所说的,如果完全正常,你只需要每个范围的均值和方差吗?你可以根据呼吸频率进行调整。
编辑:为了从您的分位数表中检索正态分布参数,假设您获得的分位数相当精确:
我/你的平均参数恰好是第50百分位数
ii /你通过取任何其他百分位来找到标准偏差,例如我们假设你的第90个百分位是73个节拍而第50个是61个节拍:
(73-61)/qnorm(0.90)
### [1] 9.36365
9.36是你的标准偏差。从这里开始自动化应该不是很难。
注意:如果您的百分位数据不是很精确,您可能需要重复每个百分位值的操作并取平均值。