我有一个数据集(名为wash
),描述了华盛顿州几年来的谋杀案。 Victim.Sex
和Perpetrator.Sex
有变量。现在我正在尝试建立受害者年龄与犯罪者年龄的散点图,我想在其中放置4条黄土线(每条线代表不同的受害者/犯罪者性别组合)。我正在尝试学习dplyr所以我尝试使用mutate,下面是:
`wash %>%
mutate(mvic_mperp = (Victim.Sex == "Male" & Perpetrator.Sex == "Male") %>%
mutate(mvic_fperp = (Victim.Sex == "Male" & Perpetrator.Sex == "Female") %>%
mutate(fvic_mperp = (Victim.Sex == "Female" & Perpetrator.Sex == "Male") %>%
mutate(fvic_fperp = (Victim.Sex == "Female" & Perpetrator.Sex == "Female") %>%`
我知道这会创建一个与受害者/犯罪者性别的每个组合相对应的特定变量,但(1)我不确定将所有这些组合起来所需的下一步,以及(2)我确信更容易使用factor()
执行此操作的方法,但我不确定如何继续。在此先感谢,我对R和大多数编程都很陌生,所以我仍然在努力学习基础知识。
编辑:要清楚,我正在尝试构建一个因子变量以插入到geom_point()中,而不是具体查看如何构建散点图本身。
答案 0 :(得分:1)
我将首先合成一些数据,因为你没有提供任何数据。这只是一个随机样本。
df <- data.frame(Perpetrator.Sex = sample(c("M","F"), 50, replace = TRUE),
Victim.Sex = sample(c("M","F"), 50, replace = TRUE),
Perpetrator.Age = rnorm(50, mean=40, sd =10),
Victim.Age = rnorm(50, mean=40, sd =10))
我们实际上不必对数据本身进行任何转换。由于您要使用ggplot2
,因此可以使用Perpetrator.Sex
函数获得Victim.Sex
/ interaction
次互动。要创建一个由Perpetrator.Sex
/ Victim.Sex
着色的年龄的散点图,您可以使用:
library(ggplot2)
p <- ggplot(df, aes(Perpetrator.Age, Victim.Age)) +
geom_point(aes(color = interaction(Perpetrator.Sex, Victim.Sex)))
p
要添加回归线,您可以使用geom_smooth
。
p + geom_smooth(method='lm', formula = y ~ x,
aes(color = interaction(Perpetrator.Sex, Victim.Sex)))