Could it be that the "problematic" data came from csv files with quotes? What does str() on those data say? Recall that apply() will coerce the object to a matrix (if it's not), which means everything needs to be the same type, so if even just one column is read into R as non-numeric, the entire result will be "wrong".
> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of suparna mitra > Sent: Wednesday, June 17, 2009 7:41 AM > To: r-help@r-project.org > Subject: Re: [R] Problem in 'Apply' function: does anybody > have othersolution > > Dear All, > Just to add some more lines in my previous query I am > writing this. I was > checking with several data. The cases where the apply > function is working, > the part of result looks like : > > > apply(Species.all[1:10,],1,max,na.rm=TRUE) > 1 2 3 4 5 6 7 8 9 10 > 22392 45 45 45 14 25 25 753 101 10 > > and with the problematic data it looks like: > > > apply(Species.all[1:10,],1,max,na.rm=TRUE) > 1 2 3 4 5 6 7 8 9 10 > "7286" "3258" "1024" " 45" " 45" " 45" " 9" " 25" " 25" " 753" > > But my all the datasets are in CSV format. I am reading those > datasets as > read.csv or read.delim > Can anybody please suggest me how to this problem? > Thanks and regards, > Suparna. > > > On Wed, Jun 17, 2009 at 1:14 PM, suparna mitra > <suparna.mi...@googlemail.com > > wrote: > > > Dear All, > > I am having some problem in apply function. > > I have some data like below. I want to get a range vector > (which is max-min > > value for each row , ignoring NA values.) > > > Species.all[1:10,] > > V2 V3 V4 V5 V6 V7 V8 V9 > > 1 57543 55938 47175 54922 36032 5785 29497 7286 > > 2 42364 40472 29887 40107 19723 2691 14445 3258 > > 3 19461 19646 18538 22392 6744 794 4919 1024 > > 4 45 41 28 34 33 NA 26 NA > > 5 45 41 28 34 33 NA 26 NA > > 6 45 41 28 34 33 NA 26 NA > > 7 14 9 14 14 7 NA 10 NA > > 8 20 25 10 15 21 NA 10 NA > > 9 20 25 10 15 21 NA 10 NA > > 10 578 566 478 753 361 150 262 170 > > > dim(Species.all) > > [1] 1862 8 > > > > I used apply function like below. I used this same function > for some other > > data, there it worked. But here its not working (giving > error message). > > > > > Range.j=apply(Species.all,1,max,na.rm = > > TRUE)-apply(Species.all,1,min,na.rm = TRUE) > > Error in apply(Species.all, 1, max, na.rm = TRUE) - > apply(Species.all, : > > non-numeric argument to binary operator > > > > When i tried to check, you can see from the steps it is > giving totally > > wrong results. > > > > > apply(Species.all[1:10,],1,max) > > 1 2 3 4 5 6 7 8 > 9 10 > > "7286" "3258" "1024" NA NA NA NA NA > NA " 753" > > > apply(Species.all[1:10,],1,min) > > 1 2 3 4 5 6 7 > > 8 9 10 > > " 47175" " 29887" " 18538" NA NA NA NA > > NA NA " 262" > > > > > > Main problem is, this code is working for some cases, but > not for all. Does > > any body have an idea, why it is so? Or can anyone show me > some other way to > > do the same. > > Thanks in advance, > > With best regard, > > Suparna > > > > [[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. > Notice: This e-mail message, together with any attachme...{{dropped:12}} ______________________________________________ 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.