以下是示例数据:
main.data <- c("id","num","open","close","char","gene","valid")
data.step.1 <- list(id="12",num="00",open="01-01-2015",char="yes",gene="1234",valid="NA")
match.step.1 <- unlist(data.step.1)
main.data
是所有可能列数据的列名。
我有一个循环,逐步传输数据,可能缺少列(列表名称)。
我想将每个步骤(data.step.n)与主列名称(main.data)相匹配。
期望的输出:
id num open close char gene valid
"12" "00" "01-01-2015" "" "yes" "1234" "NA"
如何取消列出数据并将其与名称进行匹配,以便在缺少条目的情况下使用close
填充空字符串。
答案 0 :(得分:2)
尝试
v1 <- setNames(rep('', length(main.data)), main.data)
v1[main.data %in% names(match.step.1)] <- match.step.1
或使用match
v1[match(names(match.step.1), main.data)] <- match.step.1
或者只使用[
v2 <- setNames(match.step.1[main.data], main.data)
v2[is.na(v2)] <- ''