如何在r中将类别变量分开以使两个不同的图?

时间:2018-09-11 19:01:49

标签: r

因此,假设我要制作两个直方图,比较睡眠时间是否与退伍军人有关。我有关于“退伍军人身份”的数据(保存为“是”或“否”的值),我有关于睡眠时间(以小时为单位)的定量数据。我想制作一个直方图,其中包含退伍军人的睡眠时间和非退伍军人的睡眠时间。但是我不知道如何将数据分为退伍军人和非退伍军人。谢谢。

2 个答案:

答案 0 :(得分:2)

这是一种方法,假设您的表格看起来像下面的dat

library(ggplot2)

# generate some fake data that sounds like what OP's table is 
dat <- data.frame(vet = sample(c("yes","no"), size=1e3, replace=TRUE), 
                  sleep = round(runif(1e3, min=1, max=5)) + sample(1:4, 1))

# make a histogram of `$sleep` grouped by `$vet` status: 
ggplot(dat, aes(x=sleep, fill=vet)) + 
  geom_histogram(position="dodge", bins=5)

输出将如下所示:grouped histogram

或者您可以生成并排直方图(一个用于"yes"的元老,一个用于"no"的人),如下所示:

ggplot(dat, aes(x=sleep)) + 
  geom_histogram(position="dodge", bins=5) + 
  facet_wrap(~vet)

答案 1 :(得分:0)

如果要创建2个单独的数据集,则可以使用subset函数,如下所示:

df_veterans <- subset(df, veteran_status == "yes")
df_non_veteran <- subset(df, veteran_status == "no")

或者,您也可以尝试:

df_veterans <- df[veteran_status == "yes", ]
df_non_veteran <- df[!(veteran_status == "yes"), ]