Search code examples
rpsych

Describe function not working in R


Im trying to use describe function from psych package. However, I am getting the following error:

Error in describe(ToothGrowth) : description must be a string of at least length 1

I made sure to reinstall the package, load it, and attaching an example data(ToothGrowth) from the datasets library but still getting this error.

R version 3.1.2 (2014-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C 
[5] LC_TIME=English_United States.1252 

attached base packages: 
[1] tools tcltk stats4 splines parallel grid compiler 
[8] stats graphics grDevices utils datasets methods base 

Solution

  • The problem is that testthat::describe overrides psych::describe:

    library(psych)
    data(ToothGrowth)
    describe(ToothGrowth)
    # Warning in FUN(newX[, i], ...) :
    #   no non-missing arguments to min; returning Inf
    # Warning in FUN(newX[, i], ...) :
    #   no non-missing arguments to max; returning -Inf
    #       vars  n  mean   sd median trimmed  mad min  max range  skew kurtosis   se
    # len      1 60 18.81 7.65  19.25   18.95 9.04 4.2 33.9  29.7 -0.14    -1.04 0.99
    # supp*    2 60   NaN   NA     NA     NaN   NA Inf -Inf  -Inf    NA       NA   NA
    # dose     3 60  1.17 0.63   1.00    1.15 0.74 0.5  2.0   1.5  0.37    -1.55 0.08
    
    library(testthat)
    # Attaching package: ‘testthat’
    
    # The following object is masked from ‘package:psych’:
    
    #     describe    <-- overrides describe function of psych package
    
    # The following object is masked from ‘package:sos’:
    
    #     matches
    
    describe(ToothGrowth)
    # Error in describe(ToothGrowth) : 
    #   description must be a string of at least length 1
    

    One solution is to load testthat before psych. Another is to say which describe function to use:

    psych::describe(ToothGrowth)