学习函数[错误:选择了未定义的列]

时间:2015-04-30 02:21:35

标签: r function

R新手在这里。

我正在学习各种功能,我在运行时遇到了问题:

newfunction = function(x) {
    limit = ncol(x)
    for(i in 1:limit){
       if(anyNA(x[,i] == T)) {
            x[,i] = NULL
       }
    } 
}

newfunction(WBD_SA)

我收到错误:Error in '[.data.frame(x, , i) : undefined columns selected

我正在尝试从我的数据集WBD_SA中删除所有具有任何NA值的列。

我知道na.omit()会删除带有NA值的,但不确定是否有的内容。

任何有关可以实现此目标的软件包/功能的建议也值得赞赏。

干杯!

1 个答案:

答案 0 :(得分:0)

当您迭代列时,使用x[,i] = NULL删除列,将列数减少1.除非i是最后一列,否则将为{{{\ n}的未来值产生错误1}}。你应该做这样的事情

i

good_cols = apply(x,2,function(x) {!any(is.na(x))}) x = x[,good_cols] apply(x,margin,function)应用于function维度(值为1的行,值为2的列;数组可能为3或更高){{1} },这比循环更有效(并且不会导致错误从中途改变margin。)