[R] Class attributes

David Winsemius dwinsemius at comcast.net
Fri Dec 4 18:50:53 CET 2009


On Dec 4, 2009, at 11:55 AM, Allen L wrote:

>
> Dear R forum,
> I want to replace all the elements in a data frame (dd) which match  
> the
> character "x" with "0".
> What's the most elegant way of doing this (there must be an easy way  
> which
> I've missed)? I settled on the following loop:
>
>> for(i in 5:12){                # These are the column of dd I am  
>> interested
> in
>> dd[which(dd[,i]=="x"),i]<-0
>> }
>
> The problem with this is that the columns which used to contain "x"  
> are
> still considered factors and I am unable to coerce them into numeric:

Converting the labels of fac.obj (a factor object) to numeric values  
is a FAQ (I forget the number, 7.<something>)

as.numeric(as.character( fac.obj ))

Factors are internally sets of numbers, but those numbers are not  
generally what people assign meaning to, and certainly not in your  
case where you assigned the character "0" to those rows where the  
labels were previously "x".
>
>> mean.species.biomass<-colMeans(as.numeric(dd.p[,5:12]))
>> Error in inherits(x, "data.frame") :
>  (list) object cannot be coerced to type 'double'
>
> I'm tried unclassing & reclassing, other functions etc. but nothing  
> seems to
> work. What is wrong?
> Thanks in advance,
> Allen
> -- 
--

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list