2016-07-31 5 views
0

Я искал ответ повсюду, но я просто не мог найти его для этой проблемы (возможно, я был слишком глуп, чтобы использовать другие ответы, потому что я новый к R).Один ggplot из двух фреймов данных (по 1 бара каждый)

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

t1<-data.frame(cbind(c(1:6), factor(c(1,2,2,1,2,2)))) t2<-data.frame(cbind(c(1:4), factor(c(1,2,2,1))))

1 представляет мужчина, 2 представляет собой женский Я хочу создать два barplots рядом друг с другом, которые представляют, что доля пола в первом кадре данных 2: 4 и во втором 2 : 2.

Моя попытка выглядела так:

ggplot() + geom_bar(aes(1, t1$X2, position = "fill")) + geom_bar(aes(1, t2$X2, position = "fill"))

Это приводит к ошибке: «Ошибка: stat_count() не должен использоваться с у эстетикой.»

+1

Пожалуйста, прочтите этот http://stackoverflow.com/help/mcve и редактировать вопрос соответствующим образом. Вы можете указать свою дату, используя функцию 'dput', чтобы сделать вашу проблему воспроизводимой. – Alex

ответ

1

Сначала я должен объединить два кадра данных. Вам нужно добавить переменную, которая будет определять происхождение данных, добавить в оба кадра данных столбец с идентификатором (например, t1 и t2). Имейте в виду, что ваши колонки одинаковы в обоих фреймах, поэтому вы сможете использовать функцию rbind.

t1$data <- "t1" 
t2$data <- "t2" 
t <- (rbind(t1,t2)) 

Теперь вы можете сделать сюжет:

ggplot(t[order(t$X2),], aes(data, X2, fill=factor(X2))) +   
geom_bar(stat="identity", position="stack") 

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

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