создать гистограмму с несколькими переменными - PullRequest
0 голосов
/ 01 ноября 2018

Мне нужно создать гистограмму переменной Ratio, но мне также нужно показать две дополнительные гистограммы этой переменной Ratio с разбивкой по полу. Для первого я сделал следующее:

hist(mydata$RATIO)

Но как мне сделать два других, разделенных на Женскую и Мужскую?

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Другой вариант создания гистограммы с помощью группирующей переменной - использовать пакет с именем lattice. Сначала вам нужно установить этот пакет, если вы этого еще не сделали.

install.packages("lattice")
library("lattice")

Затем вам нужно указать, что вы хотите, чтобы вам была нужна гистограмма «RATIO» и групповая переменная «Sex» в этом случае.

histogram(~RATIO | Sex, data=mydata)

Это должно работать, но, конечно, вы всегда можете написать это так, если предпочитаете:

histogram(~mydata$RATIO | mydata$Sex)
0 голосов
/ 01 ноября 2018

Мне удалось запустить следующее:

female_df <- subset(mydata, SEX == "F") 
hist(female_df$RATIO)
0 голосов
/ 01 ноября 2018

Поскольку вы не публиковали никаких данных, я продолжил и создал некоторые поддельные данные, чтобы попытаться воспроизвести пример. Я думаю, что есть два способа сделать это: один с помощью ggplot, а другой с помощью base r.

Первый - с использованием базы R

##Create mock data
library(tidyverse)

set.seed(1)

x <- tibble(Ratio = c(rnorm(1000,15,1),rnorm(1000,5,1)),
                Sex = c(rep("Male", 1000), rep("Female",1000)))

female_df <- filter(x, Sex == "Female") ##Create a dataframe only for females

male_df <-  filter(x, Sex == "Male") ##Create a dataframe only for Males

hist(female_df$Ratio, col = "red",main = "", xlab = "Ratio") ##Female histogram

hist(male_df$Ratio, col="blue",main = "", xlab = "Ratio") #Male histogram

#If you want it is possible to combine the two histograms in the same graph

hist(female_df$Ratio, xlim = c(0,20), col = "red",main = "", xlab = "Ratio")

hist(male_df$Ratio, col="blue", add=T)

Использование ggplot2

x %>% ggplot(aes(x = Ratio, fill = Sex)) + geom_histogram(color = "black", 
                  alpha = 0.5)

#OR

x %>% ggplot(aes(x = Ratio, fill = Sex)) + geom_histogram(color = "black", alpha = 0.5) + 
 facet_wrap(~Sex, scales = "free")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...