如何通过在现有列中,特别是在同一现有列中除以值,在数据框中添加新列?

时间:2018-12-31 21:41:58

标签: r tidyverse mutate

我想使用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的结果。

我只是不确定如何获得该结果。

1 个答案:

答案 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