【发布时间】:2012-08-20 23:02:44
【问题描述】:
我有一个名为 enc.per.day 的 data.table 用于每天的遭遇。它有 2403 行,其中指定了服务日期和当天就诊的患者人数。我想查看在任何类型的工作日看到的患者的中位数。
enc.per.day[,list(patient.encounters=median(n)),by=list(weekdays(DOS))]
该行给出错误
[.data.table(enc.per.day, , 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。
【问题讨论】:
标签: r integer double data.table median