R statistics: problem with simple column vector

前端 未结 3 873
星月不相逢
星月不相逢 2021-01-18 07:40

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

3条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-18 08:17

    I have been able to reproduce your error message with the following small example:

    x = as.factor(1:5)
    y = as.factor(1:5)
    
    t.test(x, y)
    

    yields

    Error in if (stderr < 10 * .Machine$double.eps * max(abs(mx), abs(my))) stop("data are essentially constant") : 
      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
    

    The problem is you are trying to perform a t-test on non-numeric vectors. Addition likewise is not defined for factors:

    x + y
    

    yields

    [1] NA NA NA NA NA
    Warning message:
    In Ops.factor(x, y) : + not meaningful for factors
    

    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())

提交回复
热议问题