R 中每个范围的两个条的表示

representation of two bars for each range in R

我一直在尝试制作条形图,但我对它的数据建模和表示非常困惑。 代码如下。 fixedTable是我从他那里拿数据的数据框,逻辑向量是我需要从我的数据集中得到的列(这里没有问题)。

在这个link中有一个通缉情节的例子。但应该是 0 和 1,而不是中国和意大利。 例如:在 50-59 年龄组中,有 49 人存活(1)和 40 人未存活(0)。因此,该组的范围需要包括身高为 49 和 0 的两个 bars:1身高 40.

代码:

ageAndSurvived<-subset(fixedTable,select = logicVector)

x<-split(ageAndSurvived,cut(ageAndSurvived$Age,seq(0,100,by=10))) #tried this but didnt help much

head(ageAndSurvived)
##   Survived Age
## 1        0  22
## 2        1  38
## 3        1  26
## 4        1  35
## 5        0  35
## 7        0  54

第三排example:in有一个幸存者,年龄26岁

我很高兴知道如何做。更喜欢使用 base R。 非常感谢您! :)

首先,我为年龄范围创建了一个组,然后将级别更改为名称,以便我们可以使用这些来绘制。然后,我使用 x-axis 的年龄组并使用 stat 中的 count 作为 y-axis,然后需要将组(即 01) 作为一个因素。

library(tidyverse)

results <-  group_by(df, agegrp = cut(Age, c(seq(9, 79, 10))), Survived)
levels(results$agegrp) <- c("0-9", "10-19", "20-29", "30-39", "40-49", "50-59", "60-69", "70-79", "80+")

results %>%
  ggplot(aes(x = agegrp, fill = as.factor(Survived))) +
  geom_bar(position="dodge", stat="count")

输出

数据

df <- structure(list(Survived = c(0L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 
1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 
1L, 0L, 1L, 0L, 1L), Age = c(22L, 38L, 26L, 35L, 35L, 54L, 22L, 
38L, 26L, 35L, 35L, 54L, 22L, 38L, 26L, 35L, 35L, 54L, 22L, 38L, 
26L, 35L, 35L, 54L, 22L, 38L, 26L, 35L, 35L, 54L)), row.names = c("1", 
"2", "3", "4", "5", "7", "11", "21", "31", "41", "51", "71", 
"12", "22", "32", "42", "52", "72", "13", "23", "33", "43", "53", 
"73", "14", "24", "34", "44", "54", "74"), class = "data.frame")