根据参考表确定百分位数

时间:2015-03-02 10:31:14

标签: r statistics

我从最近的一篇文章中已经标准化了儿童心率和呼吸频率的正常值。我将它们复制到csv中用作R中的数据集。数据只是不同的年龄范围(从3个月到6个月,或1年到2年),然后是第1个百分位,第10个,第25个的心率,该年龄段的第50,75,90,99百分位数。

我想将患者数据与此参考表进行比较,以告诉我他们所处的百分位数。由于这是一个完全正常的分布,我不认为这是一项非常艰巨的任务,但它不在我的R范围之内,我似乎无法找到关于如何实现这一目标的任何好的信息。

1 个答案:

答案 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是你的标准偏差。从这里开始自动化应该不是很难。

注意:如果您的百分位数据不是很精确,您可能需要重复每个百分位值的操作并取平均值。