代码之家  ›  专栏  ›  技术社区  ›  lf_araujo

合并两个不完全因素

r
  •  1
  • lf_araujo  · 技术社区  · 6 年前

    在对相同的观察结果合并了四个数据集之后,我最终得到了两个变量来编码条件,然而这些都是由不同的研究人员完成的,并且两者都存在不完整性。请考虑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 回复  |  直到 6 年前
        1
  •  1
  •   akrun    6 年前

    我们可以用 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"
    

    数据

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