[R] subset

Chuck Cleland ccleland at optonline.net
Wed Feb 9 15:11:51 CET 2005


subset(x, rowSums(x[,-1], na.rm=TRUE) != 0)

Rogerio Rosa da Silva wrote:
> Dear all,
> 
> I am trying to extract rows from a data.frame based on the
> rowSums != 0.  I want to preserve rownames in the first column in the subset.
> 
> Does anyone know how to extract all species that don't have rowSums equal
> to zero?  Here it is:
> 
> # dataset
> x <- data.frame(
> species=c("sp.1","sp.2","sp.3","sp.4"),
> site1=c(2,3,0,0),
> site2=c(0,0,0,0),
> site3=c(0,1,0,6),
> site4=c(0,0,0,0))
> 
> #I want extract the matrix:
> 
>  species site1 site2 site3 site4
>   sp.1     2     0     0     0
>   sp.2     3     0     1     0
>   sp.4     0     0     6     0
> 
> #extract data.frame of rowSums with x[,2:4] != 0 
> 
> subset (x, apply (x,1,function(row) all(rowSums(x[,2:4] !=0)) ## don't work
> 
> 
> Thanks in advance.
> 

-- 
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 452-1424 (M, W, F)
fax: (917) 438-0894




More information about the R-help mailing list