2015-01-26 5 views
-1

Я пытаюсь создать сложную гистограмму из данных, хранящихся в кадре данных, который имеет два столбца. Пример формата данных ниже:R: Сложенная гистограмма из двух данных столбца

Date Speed 
01/01/2013 56 
01/01/2013 45 
01/01/2013 34 
02/01/2013 23 
02/01/2013 12 
02/01/2013 1 
03/01/2013 48 

За каждый день мне нужно подсчитать количество записей, которые попадают в каждую категорию (определяется пределами, например, 0-40, 41-48, 49-60, > 60), а затем нарисуйте подсчеты для каждого дня в виде сложенной гистограммы.

Я могу это сделать, подсчитывая количество записей за каждый день отдельно и помещая результаты в новый фрейм данных в нужном формате для построения с использованием стандартной команды столбчатой ​​гистограммы. Но это неэффективный подход. Я не смог найти более элегантный метод в своих поисках, но я считаю, что он должен существовать.

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

ответ

1

Здесь вы можете использовать базу barplot. Вот пример

dd<-read.table(text="Date Speed 
01/01/2013 56 
01/01/2013 45 
01/01/2013 34 
02/01/2013 23 
02/01/2013 12 
02/01/2013 1 
03/01/2013 48", header=T) 

#make sure it's a date  
speed_date <- as.Date(dd$Date, "%m/%d/%Y") 

#cut data into requested bins 
speed_cut <- cut(dd$Speed, 
    breaks=c(0,40,48,60,Inf), 
    labels=c("0-40", "41-48", "49-60", "> 60") 
) 

#pick a color for each bin 
speed_cols <- heat.colors(nlevels(speed_cut)) 

barplot(table(speed_cut, speed_date), col=speed_cols) 
legend("topright",levels(speed_cut), fill=speed_cols) 

это производит

enter image description here

Вы можете изменить цвета в соответствии с вашим вкусом.

+0

Perfect. Большое спасибо. R продолжает удивлять меня тем, как легко он делает такие задачи ... как только вы знаете, как их сделать, конечно! – Pete

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