Antje <niederlein-rstat <at> yahoo.de> writes:

> Hello,
> 
> I used an sapply to get some data back (s <- sapply(...) ). The output 
> of s would then deliver something like this:
> 
>       B06_lamp.csv C06_lamp.csv D06_lamp.csv
> [1,] NULL         NULL         Numeric,512
> [2,] NULL         NULL         Numeric,512
> [3,] NULL         NULL         2
>  > mode(s)
> [1] "list"
>  > dim(s)
> [1] 3 3
>  >
> 
> Now, I'd like to remove the columns which contain NULL (it's alway the 
> whole column).
> How can I do this???
> 
> Antje
 

As long as it is always the whole column, you can just test the first row, 
like this:
> s<-matrix(list(NULL,NULL,NULL,NULL,NULL,NULL,numeric(512),numeric
(512),2),ncol=3)
> s[,!apply(s,2,sapply,is.null)[1,],drop=FALSE]
     [,1]       
[1,] Numeric,512
[2,] Numeric,512
[3,] 2

If you would like to make sure that the whole column is NULL, you could do 
something like the following:

> s[,!apply(apply(s,2,sapply,is.null),2,sum)==nrow(s),drop=FALSE]
     [,1]       
[1,] Numeric,512
[2,] Numeric,512
[3,] 2

I use the "drop=FALSE" here for display purposes, but you may want to leave it 
off depending on desired format.

Mark

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to