我想使用mutate
函数创建一个新列。
我不知道该怎么做,因为新列中的值是我数据框中另一列中的值的商。
通常,当我使用mutate
之前,值位于mutate(newcolumn = colX_values / colY_values)
等不同列中时,但是这次,方程式的两个部分都位于同一列中。主要区别在于我希望将女性价值观除以男性价值观。
```{r}
library(tidyverse)
library(ggplot2)
library(readxl)
```
```{r}
race = c("all", "all", "black", "black")
earnings = c(74467, 57202, 44725, 40974)
gender = c("male", "female", "male", "female")
work_status = c("FT", "FT", "FT", "FT")
data.frame(race, earnings, gender, work_status)
```
```{r}
earnings %>%
filter(work_status == "FT")
```
我最终希望第5列包含每个种族的女性收入/男性收入。因此对于所有男性行,新列中的数字应为1,而所有女性行中的数字应为57202/74467的结果。
我只是不确定如何获得该结果。
答案 0 :(得分:0)
这是您要找的吗?
df %>%
spread(gender,earnings) %>%
mutate(Ratio=female/male)
输出:
race work_status female male Ratio
1 all FT 57202 74467 0.7681523
2 black FT 40974 44725 0.9161319