Как перекодировать трехуровневый фактор - PullRequest
0 голосов
/ 08 января 2020

Мой набор данных содержит информацию о различных детях. У меня сложный факторный вопрос. У меня есть две переменные: финансы родителя 1 и финансы родителя 2 (которые принимают одно из трех значений: низкий, средний, высокий доход). Я хочу сделать третью переменную, «финансы опекуна», поскольку у некоторых из моих предметов только один родитель. Как я могу перекодировать его так, чтобы был выбран самый высокий уровень финансирования, и, если ребенок принадлежит к одному из родительских домохозяйств, он переносится в новую переменную «Хранитель».

       p1        n
      <int>    <int>
1      low     100
2      medium  306
3      high    96
        p2            n
       <int>       <int>
1      low         227
2      medium      230
3      high        243

Ответы [ 3 ]

0 голосов
/ 08 января 2020

Когда я использовал

x %>% mutate(Guardian = pmax(P1, P2))

Я получил

  Guardian      n
  <lgl>       <int>
1 TRUE         1202
2 NA           45

Мне интересно, куда ушли мои уровни (низкий, средний, высокий).

0 голосов
/ 09 января 2020

Да, это не сработало. Мои данные выглядят так:

D   P1    P2 Guardian
1    High  High  TRUE
2    Low   High  TRUE
3     NA    NA    NA

Когда они должны выглядеть так:

ID   P1     P2   Guardian
1    High  High  High
2    Low   High  High
3     NA    NA    NA
0 голосов
/ 08 января 2020

Если мы хотим получить наибольшее «n» среди двух наборов данных, выполните объединение двух столбцов с помощью столбцов «p», а затем используйте pmax, чтобы вернуть max между столбцами «n»

library(dplyr)
inner_join(df1, df2, by = c("p1" = "p2") %>%
     mutate(n = pmax(n.x, n.y) %>%
     select(p1, n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...