I have a problem using data from a tab delimited data file imported with read.delim.
Most of the columns contain numerical data which I need to do a t.test for. Unfortunately I always get this error:
Error in if (stderr < 10 * .Machine$double.eps * max(abs(mx), abs(my)))
stop("data are essentiallyconstant") :
missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In mean.default(x) : argument is not numeric or logical: returning NA
2: In mean.default(y) : argument is not numeric or logical: returning NA
I noticed that this only happens with vectors that consist of different levels.
It won’t even perform simple numerical operations like vector[1] + vector[2] for leveled vectors.
Vectors without levels work fine, though.
How can I use the data in the leveled vectors for calculation?
Thank you
I have been able to reproduce your error message with the following small example:
yields
The problem is you are trying to perform a t-test on non-numeric vectors. Addition likewise is not defined for factors:
yields
The warning gives keen insight as to what is amiss and also explains why your t-test is not working.
To fix the problem, you need to do as ilya suggests: convert your vectors to numeric with
as.numeric(as.character())