Here a way of doing it: for (i in 5:12){ # convert to character so you can substitute 'x' a <- as.character(dd[,i]) a[a == 'x'] <- '0' replace with zero dd[,i] <- as.numeric(a) }
On Fri, Dec 4, 2009 at 11:55 AM, Allen L <allen.laroc...@gmail.com> 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: > > > 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 > -- > View this message in context: > http://n4.nabble.com/Class-attributes-tp948693p948693.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? [[alternative HTML version deleted]] ______________________________________________ R-help@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.