Hola Ricardo:

Es correcto lo que dices de declarar las variables según su tipo. El "problema" con cor() es que explícitamente requiere que las variables sean numéricas. Sin embargo, cuando calcula el coeficiente de correlación de Kendall (o el de Spearman) lo hace en función del *orden* de los valores de esa variable numérica. Es decir, no es R el que sabe que Kendall es la prueba que corresponde a tus datos, sino tú como usuario, y por eso te pide que incluyas el argumento method = "kendall" cuando los datos son ordinales (o cuando son numéricos pero por su distribución no puedes confiar en la aproximación de Pearson).

Un saludo,
Marcelino


El 26/09/2022 a las 9:00, Ricardo Alva escribió:
Amigos gracias por sus respuestas. Disculpen mi ignorancia, pero no se supone que antes de que empezar a trabajar con el data frame, no se debe de declarar el tipo de variable que le corresponde a cada una y así el sistema reconozca si la variable es numérica, ordinal, dicotómoca o categorica? Por ejemplo en este caso, si le pongo numérica a todas las variables, el sistema como va saber que kendall es la prueba que le corresponde a mis datos dado que son ordinales, o este tema de numéricas es sólo una excepción para que corra el algoritmo?

Siempre trabajo declarando previamente las variables y no he tenido inconvenientes para ejecutar por ejemplo kmedias, kmodas, kprototipe, PCA, FAMD, o lo estoy haciendo mal?

Agradesco sus comentarios.





Enviado desde mi Galaxy



-------- Mensaje original --------
De: Marcelino de la Cruz Rot <marcelino.delac...@urjc.es>
Fecha: 26/9/2022 1:06 a. m. (GMT-05:00)
A: r-help-es@r-project.org
Asunto: Re: [R-es] error en matriz de correlación

Hola Ricardo:

Por precisar lo que dice Emilio, la conversión debe hacerse por
columnas, por ejemplo:

a <- apply(a, 2, as.numeric)

Un saludo,
Marcelino


El 26/09/2022 a las 7:54, Emilio L. Cano escribió:
> Hola Ricardo,
>
> Tienes que convertir las variables a numéricas, como indica el error y la ayuda de la función. Como tus valores están ordenados, simplemente convierte con as.numeric() y ya te funcionará.
>
> Un saludo,
>
> Emilio L. Cano
> http://emilio.lcano.com
>
>
>
>
>> El 26 sept 2022, a las 3:48, Ricardo Alva <kalo_a...@hotmail.com> escribió:
>>
>> Amigos buen día.
>> Estoy intentando generar la matriz de correlaciones por cualquiera de los 3 métodos de la función cor, pero siempre me arroja el mismo error.
>>
>> cor(a,method = 'kendall')
>> Error in cor(a, method = "kendall") : 'x' must be numeric
>>
>> a es un data frame con 61 filas, compuesto de 5 variables, todas ordinales y cargadas desde un archivo de excel que mantiene la siguiente forma:
>> agencia|personeria|constitucion|producto|actividad
>> 1           1           2        1        1
>> 2           1           5        1        1
>> 2           2           4            1        5
>> 2           2           2            4        1
>>
>> He tratado consignado todas las variables como ordinales y luego también como factor, pero me sigue saliendo el mismo error, por mas que elijo cualquier método de correlación.
>>
>> #Convirtiendo todas las variables a factor:
>> str(a)
>> 'data.frame':     61 obs. of  5 variables:
>> $ agencia     : Factor w/ 3 levels "1","2","3": 1 2 2 2 2 2 1 2 2 2 ...
>> $ personeria  : Factor w/ 2 levels "1","2": 1 1 1 1 1 2 1 2 2 2 ...
>> $ constitucion: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 2 5 2 1 3 4 5 ...
>> $ producto    : Factor w/ 2 levels "1","4": 1 1 1 1 1 1 1 1 1 1 ...
>> $ actividad   : Factor w/ 5 levels "1","2","3","4",..: 1 1 1 1 1 1 5 1 3 2 ...
>>
>> #Convirtiendo todas las variables a ordinales.
>> str(a)
>> 'data.frame':     61 obs. of  5 variables:
>> $ agencia     : Ord.factor w/ 3 levels "1"<"2"<"3": 1 2 2 2 2 2 1 2 2 2 ...
>> $ personeria  : Ord.factor w/ 2 levels "1"<"2": 1 1 1 1 1 2 1 2 2 2 ...
>> $ constitucion: Ord.factor w/ 5 levels "1"<"2"<"3"<"4"<..: 2 2 2 2 5 2 1 3 4 5 ...
>> $ producto    : Ord.factor w/ 2 levels "1"<"4": 1 1 1 1 1 1 1 1 1 1 ...
>> $ actividad   : Ord.factor  w/ 5 levels "1"<"2"<"3"<"4",..: 1 1 1 1 1 1 5 1 3 2 ...
>>
>> Por favor alguien que me pueda decir que estoy haciendo mal, o es que las variables en el archivo de excel deben de estar en texto?, lo cual me parecería algo raro.
>>
>>
>>       [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es


--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a