根据条件删除R中data.table中的列

时间:2017-01-26 17:26:23

标签: r set data.table

我有一个data.table,并希望删除所有列 满足一些条件,我尝试使用set循环遍历所有列,但没有设法得到结果。小例子如下。这里应删除第三栏。

library(data.table)
data<-data.table(x=c("25&&&35&&1","&&&&","&&&&"),
                 y=c("1","1","1"),
                 z=c("&&&&&","","&"))


function_length_non_missing<-function(x){
  x<-x[!is.na(x)]
  x<-gsub("&|FIELD_NOT_FOUND","",x)
  x<-gsub("\\s","",x)
  sum(x!="")
}


for (col in names(data)) (set(data,j=col,value=ifelse(function_length_non_missing(data[[col]])==0,NULL,data[[col]])))

在此示例中,它将删除列z: data<-data[,z:NULL]

            x y
1: 25&&&35&&1 1
2:       &&&& 1
3:       &&&& 1

0 个答案:

没有答案