Какой смысл использовать include.lowest в истории? - PullRequest
0 голосов
/ 26 апреля 2018

В функции hist для построения гистограмм есть аргумент include.lowest со значением по умолчанию TRUE.

Из того, что я понимаю, этот аргумент должен позволять сохранять или не сохранять нижнюю границу самых низких разрывов, когда разрывы задаются как вектор.

Но если я попробую, в качестве чисто искусственного примера, команду вроде:

 hist(c(1:100), breaks=c(1,2,10,50,100), include.lowest=FALSE)

Я просто получаю сообщение об ошибке:

Error in hist.default(c(1:100), breaks = c(1, 2, 10, 50, 100), include.lowest = FALSE) : 
  some 'x' not counted; maybe 'breaks' do not span range of 'x'

То, что здесь происходит, заключается в том, что Hist не допускает сюжет, который не учитывает полные данные (x). Если для include.lowest задано значение false, значение «1» из моих данных не появится нигде на гистограмме. Но поскольку это так, для чего используется include.lowest? Я не вижу ситуации, когда установка в false имела бы значение, не вызывая ошибку.

Примечание: в моих объяснениях я предполагаю, что я сохраняю значение по умолчанию right=TRUE, но если right=FALSE, я должен просто вести себя так же для самого высокого разрыва, а не для самого низкого, верно? Поэтому я не думаю, что это что-то меняет.

Еще немного контекста: мы работаем над графическим интерфейсом для построения графиков с использованием R (это будет частью R ++ и, конечно, будет круто). И поскольку мы предоставляем инструменты для всех параметров гистограмм, мы застряли на этом. Если это ни для чего не полезно и является наследием какой-то старой версии Хисти, мы могли бы также не включать ее, но не хотели бы забывать об этом, если это действительно может быть полезно.

Спасибо всем за внимание.

1 Ответ

0 голосов
/ 26 апреля 2018

Я не совсем уверен, что вы спрашиваете. Я предполагаю, что вы спрашиваете о поведении include.lowest = FALSE в hist и о том, почему оно приводит к ошибке в вашем примере.

Это связано с тем, как данные сгруппированы. Давайте посмотрим на cut, потому что эта функция тесно связана с тем, что делает hist.

cut(1:100, breaks = c(1, 2, 10, 50, 100))
#  [1] <NA>     (1,2]    (2,10]   (2,10]   (2,10]   (2,10]   (2,10]   (2,10]
#  [9] (2,10]   (2,10]   (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [17] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [25] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [33] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [41] (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]  (10,50]
# [49] (10,50]  (10,50]  (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [57] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [65] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [73] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [81] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [89] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100] (50,100]
# [97] (50,100] (50,100] (50,100] (50,100]
#Levels: (1,2] (2,10] (10,50] (50,100]

Обратите внимание, как 1 помещается в корзину NA. Это потому, что контейнеры - это открытые и закрытые интервалы, например, (1, 2] означает 1 - исключено , а 2 - включено .

Итак, возвращаясь к hist, следующее не выдаст ошибку при использовании include.lowest = FALSE

hist(1:100, breaks = c(0, 2, 10, 50, 100), include.lowest = FALSE)

enter image description here

Чтобы уточнить (на основе комментария @ MikkoMarttila): Биннинг в hist с include.lowest = FALSE - это поведение по умолчанию, которое вы ожидаете от стандартного биннинга в R с использованием, например, cut. Таким образом, опция для установки include.lowest = FALSE включена, чтобы соответствовать cut и его интервалам открытия-закрытия по умолчанию. В большинстве случаев при построении гистограммы требуется интервал, в котором минимальное значение является частью интервала (что не будет иметь место при использовании интервалов с открытым-закрытым пространством), поэтому по умолчанию include.lowest = TRUE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...