[R] Deleting columns based on the number of non-blank observations

David Winsemius dwinsemius at comcast.net
Sun Jan 18 17:01:12 CET 2009


colSums(is,na(x) ) can replace your function and negative indexing can  
eliminate the unwanted columns:

x[-(colSums(is.na(x)) > 375)]

or equivalently:

x[(colSums(is.na(x)) <= 375)]

You could (destructively) assign the result to x if you are brave.

-- 
David Winsemius
On Jan 18, 2009, at 9:55 AM, Josh B wrote:

> Hello,
>
> I have a dataset (named "x") with many (966) columns. What I would  
> like to do is delete any columns that do not have at least 375 non- 
> blank observations (i.e., the cells have some value in them besides  
> NA).
>
> How can I do this? I have come up with the following code to _count_  
> the non-blank observations in each column, but how would I adapt  
> this code to _delete_ columns from the dataset if they do not have  
> at least 375 non-blank observations?
>
>
>
> lapply(x, function(d)
> {
> d.2<- na.omit(d)
> count<- length(d.2)
> }
> )
>
> Many thanks in advance,
> Josh B.
>
>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org 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.




More information about the R-help mailing list