non-numeric argument to ‘pairs’ en R

publicado por: Anonymous

Intentaba hacer una matrix de correlaciones con el comando scatterplotMatrix() en R y obtengo este error:

scatterplotMatrix(a_heterophylla_NAY_SIN, spread=FALSE, lty.smooth=2,
main=”Matriz correlaciones”) Error in pairs.default(x, labels =
var.labels, cex.axis = cex.axis, cex.main = cex.main, :
non-numeric argument to ‘pairs’

Que significa y como lo resuelvo ??
Ayuda por favor !!

solución

Voy a tratar de responder tu pregunta en función de la información que diste. Fundamentalmente el problema es de datos, particularmente en a_heterophylla_NAY_SIN, el error se dispara cuando scatterplotMatrix() invoca internamente a pairs() asignándo el parámetro x con tu objeto a_heterophylla_NAY_SIN , si ves la documentación:

x: the coordinates of points given as numeric columns of a matrix or
data frame. Logical and factor columns are converted to numeric in the
same way that data.matrix does.

Es decir, se espera una matriz o un dataframe y fundamentalmente todos los valores deben ser “mapeados” a valores numéricos. Revisando el código de pairs(), vemos:

if (!is.matrix(x)) {
        x <- as.data.frame(x)
        for(i in seq_along(names(x))) {
            if(is.factor(x[[i]]) || is.logical(x[[i]]))
               x[[i]] <- as.numeric(x[[i]])
            if(!is.numeric(unclass(x[[i]])))
                stop("non-numeric argument to 'pairs'")
        }
    } else if (!is.numeric(x)) stop("non-numeric argument to 'pairs'")

O sea, o a_heterophylla_NAY_SIN es una matriz NO numérica o un objeto que aun mapeado como un dataframe, alguna de sus columnas no es numérica. La solución entonces pasaría por “normalizar” a_heterophylla_NAY_SIN, y eventualmente convertir cualquier valor no numérico en un Factor, de manera que pueda ser procesado correctamente.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *