es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo solucionar el error: Error in storage.mode(x) <- "double" : el objeto 'list' no se puede convertir a tipo 'double'.

Hola, estoy intentando ejecutar un análisis SOM y K-means.
Pero no puedo resolverlo porque hay un código de error.
Error in storage.mode(x) <- “double” : el objeto ‘list’ no se puede convertir en el tipo ‘double’

¿Cómo puedo resolver este problema?

cdata <- read.delim("Cluster.txt", stringsAsFactors=FALSE)
cdata.n <- scale(subset(cdata, select=-c(ID)))
som_model2 <- supersom(data = cdata.n, grid = somgrid(10, 10, "rectangular"))
k = 6
somClusters <- kmeans(som_model2$codes, centers = 6)

Quiero agrupar en 6 clústeres.
Por favor, ayúdame.

Utilizo estos datos.
https://github.com/woosa7/RDataAnalytics/blob/08ea98289f4def3c4f72d4c10d3767784b42619b/RDataMining/data/Cluster.txt

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el objeto ‘cdata.n’ es una lista y no se puede convertir a double. Esto se debe a la función scale(), que devuelve una lista de variables escaladas con atributos. Para solucionar este problema, puedes usar la función as.matrix() para convertir la lista en una matriz o data.frame. Aquí tienes el código modificado:

    {r}
    cdata <- read.delim("Cluster.txt", stringsAsFactors=FALSE)
    cdata.n <- scale(subset(cdata, select=-c(ID)))
    cdata.n <- as.matrix(cdata.n) # Convertir lista a matriz
    som_model2 <- supersom(data = cdata.n, grid = somgrid(10, 10, "rectangular"))
    k = 6
    somClusters <- kmeans(som_model2$codes, centers = k)

    Al convertir el objeto ‘cdata.n’ en una matriz, deberías poder ejecutar el análisis som y kmeans sin problemas.

Comments are closed.