我需要创建一个变量Ratio的直方图,但是我还需要显示该变量Ratio的另外两个直方图,并按性别细分。我已经做了以下第一件事:
hist(mydata$RATIO)
但是我该如何再由女性和男性分出另外两个呢?
答案 0 :(得分:0)
由于您没有发布任何数据,因此我继续创建一些虚假数据以尝试重现该示例。我认为有两种方法可以做到这一点:一种使用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")
答案 1 :(得分:0)
通过分组变量生成直方图的另一种方法是使用名为lattice
的程序包。如果尚未安装此软件包,则首先需要安装它。
install.packages("lattice")
library("lattice")
然后,您需要告诉它您想要什么,在这种情况下,需要直方图“ RATIO”和分组变量“ Sex”。
histogram(~RATIO | Sex, data=mydata)
这应该可以,但是如果您愿意,您当然可以总是这样写:
histogram(~mydata$RATIO | mydata$Sex)
答案 2 :(得分:0)
我能够运行以下命令:
female_df <- subset(mydata, SEX == "F")
hist(female_df$RATIO)