2015-06-21 1 views
0

В R можно построить гистограмму и сохранить его свойства переменной:переменные, которые влияют на гистограмму график с функцией чужого() в R

> h1=hist(c(1,1,2,3,4,5,5), breaks=0.5:5.5) 

Эти свойства можно затем прочитать:

> h1 
$breaks 
[1] 0.5 1.5 2.5 3.5 4.5 5.5 

$counts 
[1] 2 1 1 1 2 

$density 
[1] 0.2857143 0.1428571 0.1428571 0.1428571 0.2857143 

$mids 
[1] 1 2 3 4 5 

$xname 
[1] "c(1, 1, 2, 3, 4, 5, 5)" 

$equidist 
[1] TRUE 

attr(,"class") 
[1] "histogram" 

Как эти свойства влияют на гистограмму? До сих пор я выяснил следующее:

Отношения между $breaks и $counts. $breaks представляет собой интервал, к которому нанесены данные могут упасть и $counts представляет собой количество данных, которые попали в этот интервал, например:

[] обозначает closed interval (конечные точки включены)

() обозначает open interval (конечные точки не включены)

BREAKS : COUNTS 
[0.5-1.5] : 2 # There are two 1 which falls into this interval 
(1.5-2.5] : 1 # There is one 2 which falls into this interval 
(2.5-3.5] : 1 # There is one 3 which falls into this interval 
(3.5-4.5] : 1 # There is one 4 which falls into this interval 
(4.5-5.5] : 2 # There are two 5 which falls into this interval 

Соотношение между $breaks и $density в основном таким же, как и выше, но написаны в процентах, например:

BREAKS : DENSITY 
[0.5-1.5] : 0.2857143 # This interval covers cca 28% of plot 
(1.5-2.5] : 0.1428571 # This interval covers cca 14% of plot 
(2.5-3.5] : 0.1428571 # This interval covers cca 14% of plot 
(3.5-4.5] : 0.1428571 # This interval covers cca 14% of plot 
(4.5-5.5] : 0.2857143 # This interval covers cca 28% of plot 

Конечно, когда вы просуммировать все эти значения, вы получите 1:

> sum(h1$density) 
[1] 1 

После трибунами на имя оси х:

$xname 
[1] "c(1, 1, 2, 3, 4, 5, 5)" 

Но что делать остальные делают, особенно $mids?

$mids 
[1] 1 2 3 4 5 

$equidist 
[1] TRUE 

attr(,"class") 
[1] "histogram" 

Также help(hist) возвращает многие другие, не должны они быть также перечислены в выводе выше, если не почему? Как поясняются в following статьи

По умолчанию бин счетчики включают значения меньше или равно правой точки разрыва БИН и строго больше, чем левая точка перерыва БИН, за крайний левый бункер, который включает в себя, кроме его левый перерыв пункт.

Так следующее:

h1=hist(c(1,1,2,3,4,5,5,1.5), breaks=0.5:5.5) 

вернется гистограмму, где 1,5 попадет в 0,5-1,5 интервал. Один «обходной путь» заключается в том, чтобы установить размер интервала меньшим, например.

h1=hist(c(1,1,2,3,4,5,5,1.5), breaks=seq(0.5,5.5,0.1)) 

, но это кажется непрактичным для меня, и это также добавляет кучу 0 до $counts и $density, есть лучше, автоматический способ?

Кроме этого у него также есть один побочный эффект, который я не могу объяснить себе: почему последний пример возвращается в резюме 10, а не 1?

> sum(h1$density) 
[1] 10 
> h1$density[h1$density>0] 
[1] 2.50 1.25 1.25 1.25 1.25 2.50 
+2

Пожалуйста, ознакомьтесь с '? [Имя_функция]', прежде чем отправлять подобные вопросы. –

ответ

2

Вопрос 1 Что делать $ отсевки и $ equidist средний: Из файла справки:

MIDs: в п клеток Середины.

equidist: логический, указывающий, являются ли расстояния между разрывами одинаковыми.


Q2: Да, с h1=hist(c(1,1,2,3,4,5,5,1.5), breaks=0.5:5.5) 1,5 упадет в 0,5-1,5 категории. Если вы хотите, чтобы попасть в 1,5-2,5 категории, вы должны использовать:

h1=hist(c(1,1,2,3,4,5,5,1.5), breaks=0.49:5.49) 

или много аккуратнее:

h1=hist(c(1,1,2,3,4,5,5,1.5), breaks=0.5:5.5, right=FALSE) 

Я не уверен, что вы хотите автоматизировать здесь, но мы надеемся, выше отвечает на ваш вопрос. Если нет, пожалуйста, я более подробно расскажу о вашем вопросе.


Q3 О плотности быть 10, а не 1, то есть из-за плотности нет частот. Из файла справки:

плотность: значения f^(x [i]), как оцененные значения плотности. Если все (diff (breaks) == 1), они являются относительными частотами count/n и вообще удовлетворяют сумме [i; f^(x [i]) (b [i + 1] -b [i])] = 1, где b [i] = breaks [i].

Так что, если ваши перерывы не равны 1, плотность не подведет до 1.

+0

Благодарим вас за ответ, я не являюсь носителем английского языка, поэтому я не поймал идею «mids» даже с помощью. Если я правильно понимаю, то это центр конкретной вертикальной полосы? Что касается последнего вопроса, я нашел это, что вернет 1 'sum (h $ density * diff (h $ breaks))' –

+0

Я тоже не носитель языка, но я понимаю то же самое: это середина класса гистограмма, если класс 2.5-3.5, средний будет 3. – RHA

Смежные вопросы