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.

Reply via email to