我有一个名为 enc.per.day 的 data.table 用于每天的遭遇。它有 2403 行,其中指定了服务日期和当天就诊的患者人数。我想查看在任何类型的工作日看到的患者的中位数。
enc.per.day[,list(patient.encounters=median(n)),by=list(weekdays(DOS))]
那行给出了一个错误
( enc.per.day
[.data.table
, , list(patient.encounters = median(n)), 中的错误:j 的列不评估为每个组的一致类型:第 4 组的结果具有第 1 列类型“整数”但期望输入“双”
以下都运行良好
tapply(enc.per.day$n,weekdays(enc.per.day$DOS),median)
enc.per.day[,list(patient.encounters=round(median(n))),by=list(weekdays(DOS))]
enc.per.day[,list(patient.encounters=median(n)+0),by=list(weekdays(DOS))]
到底是怎么回事?我花了很长时间才弄清楚为什么我的代码不起作用。
顺便说一下,底层向量 enc.per.day$n 是一个整数
storage.mode(enc.per.day$n)
返回“整数”。此外,data.table 中的任何地方都没有 NA。