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
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.