On May 2, 2010, at 11:22 AM, Mohan L wrote:





Your code has a different name for the sample object. And it would be more informative if you offered str on "sample1".

This is the result of str on "sample1".
> str(sample1)
'data.frame':    35943 obs. of  17 variables:
$ stdate : Factor w/ 7 levels "01/11/09 00:00",..: 1 1 1 1 1 1 1 1 1 1 ...

So stdate is not a date variable but that is probably not your problem since it looks like the time portion of your not-dates are all "00:00". tapply can work with this information


snipped


$ Login : Factor w/ 419 levels ".00","1.00","10.00",..: 114 283 217 216 14 1 2 2 407 327 ...

So "Login" is not a numeric class variable. Read the FAQ about the proper way to convert that variable to numeric without loosing information.

The Login column contain all numeric values . I don't understand why I need to convert that variable to numeric?

BECAUSE IT"S NOT NUMERIC.

I have no way to determining _why_ it is not numeric, but it simply is ... not. Your input method turned it into a factor. Perhaps there was one missing delimiter, or there was a stray character in one of the entries in the file. Who knows. Why waste time arguing? Follow the directions for fixing the problem. Once you do so, location of the element causing the problem may become more clear, since then the non- numeric coercible elements will get turned into "NA"'s or "NaN"'s.



login column contain data like this :

> sample$Login

[35881] .00 1.00 .00 1.00 .00 .00 1.00 2.00 [35889] 1.00 3.00 .00 .00 .00 1.00 . 00 32.00 [35897] 2.00 4.00 .00 17.00 3.00 1.00 12.00 .00 [35905] 8.00 .00 3.00 7.00 .00 17.00 . 00 4.00 [35913] 16.00 4.00 20.00 7.00 .00 22.00 18.00 1.00 [35921] 3.00 3.00 .00 .00 37.00 3.00 12.00 3.00 [35929] 2.00 11.00 .00 5.00 77.00 1.00 4.00 1.00
[35937] 9.00     18.00    3.00     3.00     4.00     14.00    2.00

Factor variables can have labels that look like numbers.


The mode of Login is numeric only :

So what?

> mode(factor(c("a", "v", "c"))  )
[1] "numeric"

Modes are not the same as classes. Factors are represented internally as integers.



> mode(sample$Login)
[1] "numeric"
>

And I am also using as.numeric(as.character(sample$Login), still it has some warning and NA . I don't understand why this is happening. could you explain?

I already did explain. You are bordering on magical thinking here. Since the class of sample$Login is "factor", your fervent desire to make it "numeric" will accomplish nothing useful.

--
David.

> avglog <- with(sample1, tapply(as.numeric(as.character(sample $Login)), stdate, mean))
Warning message:
In tapply(as.numeric(as.character(sample$Login)), stdate, mean) :
  NAs introduced by coercion
> avglog
01/11/09 00:00 02/11/09 00:00 03/11/09 00:00 04/11/09 00:00 05/11/09 00:00 22.04866 16.65358 NA 15.84970 16.58600
06/11/09 00:00 07/11/09 00:00
      16.20743       18.52379

Thanks & Rg
Mohan L


David Winsemius, MD
West Hartford, CT

______________________________________________
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