因此,假设我要制作两个直方图,比较睡眠时间是否与退伍军人有关。我有关于“退伍军人身份”的数据(保存为“是”或“否”的值),我有关于睡眠时间(以小时为单位)的定量数据。我想制作一个直方图,其中包含退伍军人的睡眠时间和非退伍军人的睡眠时间。但是我不知道如何将数据分为退伍军人和非退伍军人。谢谢。
答案 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)
或者您可以生成并排直方图(一个用于"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"), ]