У меня есть data.table, называемый enc.per.day для встреч в день. Он имеет 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 "целое число", но ожидает тип "double"
Следующие работы хорошо работают
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)
возвращает "integer". Кроме того, в таблице данных нет нигде нет.