R 循环,用于检查数据帧两列中的 NA 并将名称粘贴到单元格中



我有一个数据框架与一些ID和6个变量。我需要在每个观测值中检查这些变量的NA,并保存有NA的变量的标签。如果有一个NA的6个变量中只有一个,我没有问题让它与ifelse()语句一起工作-但如果有两个,我想粘贴类似"OBS在VAR1VAR2中缺少数据"的东西;我似乎无法让浆糊工作。粘贴当前只是覆盖,如果有东西在新的单元格已经,隐藏其他变量,那里有一个NA记录。你能帮忙吗?

目前,我用于保存/粘贴名称在一起的ifelse语句(如我希望新列保存名称,如"missing_in_var1_var2")看起来像这样,但是,它不起作用:

在一个突变表达式中:

colname_label =  ifelse(missing == 'Missing_in_two',
ifelse(is.na(VAR1) == TRUE, paste("VAR1"), 
ifelse(is.na(VAR2== TRUE, paste("VAR2"),
     ifelse(is.na(VAR3) == TRUE, paste("VAR3"),
            ifelse(is.na(VAR4) == TRUE, paste("VAR4"),
                   ifelse(is.na(VAR5) == TRUE, paste("VAR5),
                          ifelse(is.na(VAR6== TRUE, paste("VAR6"),''))))))) # NO of parentheses here is not the issue - part of a bigger expression

我很抱歉,如果这个问题是愚蠢的-我觉得我应该能够做到这一点,但盯着自己瞎了。

希望你能帮忙!

tryapplywithpaste

dt$`missinh val in` <- apply(dt, 1 , function(x)
{paste(colnames(dt)[is.na(x)], collapse="_")} 
)

最新更新