2016-08-11 6 views
0

Я использую R для анализа моей магистерской диссертации, и у меня есть данные с возрастными категориями от 1 до 6, и у меня разные точки времени (от 1 до 7). Я взял среднее значение каждой временной точки. Итак, теперь у меня есть таблица размером 6 на 8, и я хочу сделать гистограмму о том, чтобы поместить возрастную категорию по оси x и различные точки времени на оси y, чтобы сравнить их.Гистограмма, использующая среднее значение разных временных точек для нескольких категорий

Данные:

Group.1 T0 T1 T2 T3 T4 T5 T6 
1  0.52 0.64 0.65 0.54 0.87 0.65 0.73 
2  0.87 0.54 0.65 0.60 0.87 0.65 0.87 
3  0.97 0.48 0.65 0.60 0.87 0.36 0.88 
4  0.45 0.67 0.66 0.87 0.87 0.51 0.98 
5  0.70 0.99 0.84 0.88 0.87 0.54 0.98 
6  0.77 0.80 0.87 NaN NaN NaN 1.00 

Я использовал следующую команду:

library(reshape2) 

new.df<-melt(data,id.vars="Group.1") 
names(new.df)=c("Group.1","variable","value") 

library(ggplot2) 

ggplot(data=new.df, aes(x=Group.1, y=value,fill=(variable)))+ 
    geom_histogram() 

Сначала я получаю код ошибки, говоря "об ошибке: Unknown параметры: binwidth, бункеров, пусковой площадки" Так Я попробовал уточнить, и теперь у меня появляется код ошибки «Ошибка: stat_bin() не следует использовать с эстетикой».

Может кто-нибудь мне помочь? что я хочу что-то вроде этого:

Draw histograms per row over multiple columns in R

(Первый один на вершине с несколькими цветами)

Спасибо.

Zas

+0

Привет, добро пожаловать к переполнению стека. Пожалуйста, предоставьте минимальный рабочий пример, чтобы мы могли лучше помочь. См. Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Felix

+0

Привет, я добавил гипотетические данные, это лучше? Спасибо –

+0

Хорошо, я вижу. Вы имеете в виду что-то вроде этого: http://pasteboard.co/7mKtOYcHm.png? Я да, я был бы счастлив написать ответ – Felix

ответ

1

Итак, первое, что вы ищете простую «сгруппированная гистограмма», а не гистограммы. См. here для объяснения. С этой точки зрения, вот простой пример с использованием данных вашей игрушки:

Сначала мы переформатируем данные, считая, что вы прочитали данные, которые вы вставили как df <- read.table("clipboard", header = T). Обратите внимание, что я использую функцию gather()tidyr «s, чтобы изменить данные, которая похожа на reshape

# with dplyr & tidyr 
library(dplyr) 
library(tidyr) 

df <- df %>% 
    gather(key, value, -Group.1) 

# without dplyr 
df <- reshape2::melt(df, id.var = "Group.1", variable.name = "key") 

Теперь, это просто вопрос получения групп и цветов в ggplot справа.

ggplot(df, aes(x = Group.1, y = value)) + # 'Group.1' on the x-axis 
    geom_bar(stat = "identity",    # stat = "identity", so we can use y values 
      position = "dodge",    # this puts all the bars next to each other 
      aes(group = key, fill = key)) + # group and fill by time slot 
    scale_fill_brewer(palette = "Set1") +  # this gives you nicer colors 
    scale_x_continuous(breaks = 1:6) 

Что дает вам:

Grouped Bar Chart

+0

Я пытаюсь загрузить пакет «dplyr», и я получаю сообщение об ошибке «Установка пакета в« H:/R-Libraries/V3 » (так как« lib »не указан) Предупреждение в пакете install.packages: «dplyr» недоступен (для версии R 3.1.1) « любая идея? –

+0

Да, последняя версия dplyr требует, по крайней мере, версии 3.1.2. Это может помочь вам с обновлением R: https: //www.r-statistics.com/2013/03/update-r-from-r-on-windows-using-the-installr-package/ – Felix

+0

Ради решения проблемы без обновления R я отредактировал свой ответ и добавил решение для изменения формы – Felix

0

Возможно, это может помочь вам начать работу:

#scatterplot 
ggplot(data=new.df, aes(x=Group.1, y=value,colour=variable))+ 
     geom_point() 

#barchart 
ggplot(data=new.df, aes(x=Group.1, y=value,fill=variable))+ 
     geom_bar(stat="identity",position = "dodge") 

#line + scatterplot 
ggplot(data=new.df, aes(x=Group.1, y=value,colour=variable))+ 
     geom_point()+ 
     geom_line() 
+0

Спасибо, это выглядит отлично. Тем не менее, я хочу, чтобы баррикады были предложены Феликс –

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

  • Нет связанных вопросов^_^