Remove constant columns with or without NAs

前端 未结 7 1537
深忆病人
深忆病人 2021-01-17 17:30

I am trying to get many lm models work in a function and I need to automatically drop constant columns from my data.table. Thus, I want to keep only columns wit

7条回答
  •  余生分开走
    2021-01-17 18:11

    Just change

    all(is.na(.col)) || all(.col[1L] == .col)

    to

    all(is.na(.col) | .col[1L] == .col)

    Final code:

    same <- sapply( df, function(.col){ all( is.na(.col) | .col[1L] == .col ) } )
    df1 <- df[,!same, with=F]
    

    Result:

        x
    1:  1
    2:  2
    3:  3
    4: NA
    5:  5
    

提交回复
热议问题