我发现自己处于以下情况:
在将相同观察值的四个数据集合并之后,我得到了两个编码条件的变量,但是这些变量是由不同的研究人员完成的,并且两者都不完整。请考虑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
答案 0 :(得分:1)
我们可以将其替换为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)