Слияние двух неполных факторов - PullRequest
0 голосов
/ 13 декабря 2018

Я нахожусь в следующей ситуации:

После объединения четырех наборов данных по одним и тем же наблюдениям я получил две переменные, кодирующие условия, однако они были выполнены разными исследователями, и в обоих,Пожалуйста, рассмотрите MWE:

ID <- c("a1", "a2", "a3",  "a4", "a5", "a6")
a <- c("sch", "con", "unknown", "sch", "con", "con")
b <- c("sch", "con", "sim", "sch", "unknown", "con")


dt <- data.frame(ID, a, b)
dt

Распечатывает:

  ID       a       b
1 a1     sch     sch
2 a2     con     con
3 a3 unknown     sim
4 a4     sch     sch
5 a5     con unknown
6 a6     con     con

Я хочу создать новую переменную, которая дополняет любую запись, которая не была завершена, поэтому будет выглядеть так:

  ID       a       b     ab
1 a1     sch     sch     sch
2 a2     con     con     con
3 a3 unknown     sim     sim
4 a4     sch     sch     sch
5 a5     con unknown     con
6 a6     con     con     con
  • Как этого добиться в R?Есть ли способ проверить несоответствия между a и b?

1 Ответ

0 голосов
/ 13 декабря 2018

Мы могли бы заменить его на NA и затем использовать coalesce

dt$ab <- do.call(dplyr::coalesce, replace(dt[-1], dt[-1] == 'unknown', NA))

Или использовать pmax

do.call(pmax, c(replace(dt[-1], dt[-1] == 'unknown', NA), list(na.rm = TRUE)))
#[1] "sch" "con" "sim" "sch" "con" "con"

data

dt <- data.frame(ID, a, b, stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...