Remove constant columns with or without NAs

前端 未结 7 1603
深忆病人
深忆病人 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:02

    Because you have a data.table, you may use uniqueN and its na.rm argument:

    df[ , lapply(.SD, function(v) if(uniqueN(v, na.rm = TRUE) > 1) v)]
    #     x
    # 1:  1
    # 2:  2
    # 3:  3
    # 4: NA
    # 5:  5
    

    A base alternative could be Filter(function(x) length(unique(x[!is.na(x)])) > 1, df)

提交回复
热议问题