我想编写一些代码来获取给定的数据框,检查是否有任何列丢失,如果是,请添加缺少的列填充0或NA。下面是我得到了什么:R:找到丢失的列,如果丢失,添加到数据框
> df
x1 x2 x4
1 0 1 3
2 3 1 3
3 1 2 1
> nameslist <- c("x1","x2","x3","x4")
> miss.names <- !nameslist %in% colnames(df)
> holder <- rbind(nameslist,miss.names)
> miss.cols <- subset(holder[1,], holder[2,] == "TRUE")
除了这一点,我无法弄清楚如何在缺少列(“X3”)没有硬编码它添加。理想情况下,我希望新的完整数据框具有与nameslist相同顺序的列。
任何想法?我目前的代码可以忽略,没问题。
你也可以使用'Missing < - setdiff(nms,names(df))',它稍微透明一些。 – 2012-02-11 07:12:43
@HongOoi - 好的建议。这更好,我编辑了包含它的答案。谢谢! – 2012-02-11 07:25:30