Usando el paquete “hier.part” en R, obtengo un mensaje de “tipo inválido (carácter)”.
Estoy tratando de ejecutar un análisis estadístico jerárquico en un conjunto de datos que involucra tamaños de insectos en R-studio usando el paquete hier.part
. Cada punto de datos incluye los siguientes datos: mes de recolección, año de recolección, temperatura media anual, temperatura media mensual y longitud de las alas del insecto (elitro).
Cuando intento usar este código:
indv <- subset(dataset, select=-elytra)+
hier.part(y = dataset$elytra, xcan = indv, family = "gaussian", gof = "RMSPE", barplot = TRUE)
Obtengo este error:
Error in FUN(newX[, i], ...) : invalid 'type' (character) of argument
Ya he convertido cada columna a datos numéricos, así que no estoy seguro de dónde provienen los datos (carácter) que interfieren con el análisis. El conjunto de datos con el que estoy trabajando es grande y un tanto complicado, así que estoy tratando de ejecutar un análisis simple primero, pero parece que no puedo hacer que este paquete funcione para mí.
Disculpen si el formato aquí no es bueno, esta es mi primera pregunta. Si necesitan más información sobre mis datos o el problema, por favor háganmelo saber. Cualquier ayuda es apreciada.
davy.ai
Parece que el mensaje de error “tipo ‘inválido’ (carácter) de argumento” puede deberse al argumento
family = "gaussian"
en la funciónhier.part
. Este argumento especifica el tipo de distribución para la variable de respuestay
, que en este caso es la longitud de las alas del insecto (dataset$elytra
). Sin embargo, este argumento espera un valor de carácter que represente el tipo de distribución, como “gaussian” para una distribución normal, “poisson” para una distribución de Poisson, etc.Una posible solución es cambiar el argumento
family
al tipo de distribución adecuado para la variable de respuesta (dataset$elytra
). Si la longitud de las alas del insecto sigue una distribución normal, entonces “gaussian” es el valor correcto parafamily
. Si sigue una distribución diferente, se debe usar un valor diferente.Otro posible problema podría estar relacionado con el argumento
xcan
, que especifica la matriz de variables predictoras. Es posible que aún haya algunos datos no numéricos en la matrizindv
, incluso si todas las columnas se han convertido en datos numéricos utilizandosubset(dataset, select=-elytra)
(que elimina la columnaelytra
). Puede ser útil verificar los tipos de datos de todas las columnas enindv
utilizandostr(indv)
osapply(indv, class)
, y asegurarse de que todas las columnas sean numéricas.Además, puede ser útil proporcionar más información sobre la naturaleza específica del error, como el número de línea o qué argumento está causando el problema, así como cualquier mensaje de advertencia que pueda aparecer. Esto puede ayudar a localizar el problema y proporcionar una solución más específica.
En general, parece que este problema está relacionado con los tipos de datos de los argumentos y asegurarse de que todos los datos estén en el formato correcto antes de aplicar la función
hier.part
.