R 变量是按0或1分类的-我如何使用它?

R 变量是按0或1分类的-我如何使用它?,r,ggplot2,R,Ggplot2,我正在使用许多不同的R课程使用的“泰坦尼克号”软件包。但这对我来说非常困难,因为一个人是否幸存取决于0(没有幸存)或1(幸存)。我试图创建一个基本的条形图,但似乎无法总结每个性别的1,或者任何其他变量 library(tidyverse) install.packages('titanic') library(titanic) 只是一点点的转变: titanic <- titanic_train %>% + select(Survived, Pclass, Sex, Age

我正在使用许多不同的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))
我试图创建一个条形图:

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()

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

在绘制这样的图之前尝试总结一下。另外,
aes
是一个数值二进制变量,因此为了使用它,您可以在
aes()
中将其转换为
factor()
。您可以使用
groupby()
和所需变量直接设置管道,然后使用
summary()
。如果需要计数,可以使用
n()
函数。这里是代码,我在这里使用了
titanic\u train
dataset:

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')
输出:


在这样绘制之前,请尝试进行总结。另外,
aes
是一个数值二进制变量,因此为了使用它,您可以在
aes()
中将其转换为
factor()
。您可以使用
groupby()
和所需变量直接设置管道,然后使用
summary()
。如果需要计数,可以使用
n()
函数。这里是代码,我在这里使用了
titanic\u train
dataset:

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
,它将对值进行计数,而不是在数据框中显示它们!stat='identity'在geom_bar()中到底做了什么?@ReeNadeau这是一种基于变量中的值创建条形图的方法,您还可以定义其他方法,如
stat=count
,它将对值进行计数,而不是在数据框中显示它们!