Как добавить новый столбец во фрейм данных, разделив значения в существующем столбце, в частности, в том же существующем столбце? - PullRequest
0 голосов
/ 01 января 2019

Я хочу использовать функцию 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 голосов
/ 02 января 2019

Это то, что вы ищете?

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...