【问题标题】:Variable is categorized by 0 or 1 - how do I work with this?变量按 0 或 1 分类 - 我该如何处理?
【发布时间】:2020-10-19 00:11:53
【问题描述】:

我正在使用许多不同的 R 课程使用的“泰坦尼克号”包。不过,这对我来说非常困难,因为一个人是否幸存是由 0(没有幸存)或 1(幸存)决定的。我正在尝试创建一个基本的条形图,但似乎无法总结每个性别的 1 - 或任何其他变量。

library(tidyverse)
install.packages('titanic')
library(titanic)

只是一点点转变:

titanic <- titanic_train %>%
+     select(Survived, Pclass, Sex, Age, SibSp, Parch, Fare) %>%
+     mutate(Survived = factor(Survived),
+            Pclass = factor(Pclass),
+            Sex = factor(Sex))

我试图通过 summarise() 确定女性和男性幸存者的数量:

titanic %>% group_by(Sex) %>% summarise(., survived = count(Survived))

titanic %>% group_by(Sex) %>% summarise(., survived = sum(Survived))

我试图创建一个条形图:

ggplot(titanic, mapping = aes(Sex, Survived)) + geom_bar()
ggplot(titanic, mapping = aes(Sex, sum(Survived))) + geom_bar()
ggplot(titanic, mapping = aes(Sex, count(Survived))) + geom_bar()

有人能告诉我如何在泰坦尼克号数据集中使用像“Survived”这样的变量吗?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    在像这样绘制之前尝试总结。此外,Survived 是一个数字二进制变量,因此为了使用它,您可以在aes() 中将其转换为factor()。您可以直接使用 group_by() 和所需的变量设置管道,然后使用 summarise()。如果你想要计数,你可以使用n() 函数。这里是代码,我用过titanic_train数据集:

    library(tidyverse)
    library(titanic)
    data("titanic_train")
    #Code
    titanic_train %>% group_by(Sex,Survived) %>% summarise(N = n()) %>%
      ggplot(aes(Sex, N,fill=factor(Survived))) +
      geom_bar(stat = 'identity')+
      labs(fill='Survived')
    

    输出:

    或者,如果您希望每节课都有一个栏,试试这个:

    #Code 2
    titanic_train %>% group_by(Sex,Survived) %>% summarise(N = n()) %>%
      ggplot(aes(Sex, N,fill=factor(Survived))) +
      geom_bar(stat = 'identity',position = position_dodge(0.9))+
      labs(fill='Survived')
    

    输出:

    或者如果你想使用count(),你可以绘制下一个代码:

    #Code 3
    titanic_train %>% count(Sex,Survived) %>%
      ggplot(aes(Sex, n,fill=factor(Survived))) +
      geom_bar(stat = 'identity',position = position_dodge(0.9))+
      labs(fill='Survived')
    

    输出:

    【讨论】:

    • stat = 'identity' 在 geom_bar() 中究竟做了什么?
    • @ReeNadeau 这是一种根据变量中的值创建条形的方法,您还可以定义其他方法,例如stat=count,它将计算值而不是显示它们出现在您的数据框!
    猜你喜欢
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 2021-12-14
    • 2014-09-02
    • 2020-05-22
    • 1970-01-01
    相关资源
    最近更新 更多