функция r — hist объединяет значения «ноль» и «1» в одну ячейку.

#r #histogram

#r #гистограмма

Вопрос:

Я схожу с ума от функции hist (). У меня есть набор данных следующим образом:

 table(data)

0  1  2  3  4  5  7  8 
85  7  3  4  6  1  2  1 
 

Поэтому я ожидаю, что hist(data, labels=TRUE) это вернет мне гистограмму с 9 ячейками, по одной для нулей, по одной для единиц и т. Д. И Со значением для каждой ячейки. Но она объединяет значения 0 и 1, и после одного дня поиска в Google я все еще не могу понять, как я могу это исправить. Я также пытался объявить количество таких ячеек, hist(data, breaks=c(0,8)) но ничего.
В качестве альтернативы я попробовал использовать histogram lattice пакет, и он работает нормально… но я не могу понять, как отобразить значение каждой ячейки…
Можете ли вы мне помочь в любом случае (с правильным количеством столбцов hist() или отображением значений ячеек histogram() )?
большое спасибо.

Комментарии:

1. Попробуйте hist(data,right=F)

Ответ №1:

hist(...) по умолчанию использует закрытые справа интервалы. Вы можете изменить это с помощью right=... аргумента.

 x <- c(0, 1,  2,  3,  4,  5,  7,  8)
y <- c(85,  7,  3,  4,  6,  1,  2,  1)
z <- rep(x,times=y)

par(mfrow=c(1,2))
hist(z,right=T, main="Right closed")
hist(z,right=F, main="Left Closed")
 

Вот эквивалент в ggplot , который IMO немного понятнее.

 library(ggplot2)
ggplot(data.frame(z), aes(x=factor(z)))   
  geom_histogram(fill="lightgreen", color="grey50")
 

Комментарии:

1. Большое спасибо за ваше отличное объяснение! Мне больше нравится ggplot2 🙂 Знаете ли вы, что я могу поместить значение столбцов поверх каждого столбца (например, регистр hist(data, labels = TRUE))?