Problema con la funzione cmeans in R
Ciao a tutti. Ho un problema in R con la funzione cmeans.
Devo eseguire l’algoritmo fuzzy means con questa funzione ma ho un problema con questo codice:
"library(e1071)
data1 <- read.table(file='C:\\Users\\Alberto\\Desktop\\Fuzzy_Clustering\\Dati_SPSS_Cluster_1.csv', sep=',', header=T, row.names=1)
centers<-matrix(1:8, nrow=2)
cmeans (data1, centers, iter.max=100, verbose=FALSE, dist="euclidean",method="cmeans", m=2, rate.par = NULL)"
La risposta del programma è:
Error in cmeans(data1, centers, iter.max = 100, verbose = FALSE, dist = "euclidean", :
Must have same number of columns in 'x' and 'centers'.
Innanzitutto io non gli ho dato nessuna variabile x in pasto.
Ammesso che lui consideri la variabile x riferita al primo argomento della funzione cmeans cioè data1, non è vero che data1 non ha lo stesso numero di colonne di centers.
Infatti centers ha 4 colonne come data1. Data 1 è infatti un file numerico di excel residente nel mio pc con 50 osservazioni ognuna di 4 componenti. Quindi forma una matrice 50x4; dunque con 4 colonne.
Quale potrebbe essere il problema?
P.S. E’ un bel po’ che ci rifletto ma non riesco a trovare nessuna soluzione. Scusate se forse è un problema banale ma sono un novello di R e dunque abbiate pazienza per favore . Grazie.
Devo eseguire l’algoritmo fuzzy means con questa funzione ma ho un problema con questo codice:
"library(e1071)
data1 <- read.table(file='C:\\Users\\Alberto\\Desktop\\Fuzzy_Clustering\\Dati_SPSS_Cluster_1.csv', sep=',', header=T, row.names=1)
centers<-matrix(1:8, nrow=2)
cmeans (data1, centers, iter.max=100, verbose=FALSE, dist="euclidean",method="cmeans", m=2, rate.par = NULL)"
La risposta del programma è:
Error in cmeans(data1, centers, iter.max = 100, verbose = FALSE, dist = "euclidean", :
Must have same number of columns in 'x' and 'centers'.
Innanzitutto io non gli ho dato nessuna variabile x in pasto.
Ammesso che lui consideri la variabile x riferita al primo argomento della funzione cmeans cioè data1, non è vero che data1 non ha lo stesso numero di colonne di centers.
Infatti centers ha 4 colonne come data1. Data 1 è infatti un file numerico di excel residente nel mio pc con 50 osservazioni ognuna di 4 componenti. Quindi forma una matrice 50x4; dunque con 4 colonne.
Quale potrebbe essere il problema?
P.S. E’ un bel po’ che ci rifletto ma non riesco a trovare nessuna soluzione. Scusate se forse è un problema banale ma sono un novello di R e dunque abbiate pazienza per favore . Grazie.
Risposte
Hai provato a usare una matrice di prova con 4 colonne e vedere se funziona?
Io proverei cosí
e lancerei il comando con x e centers, se cosí non dovesse dare problemi allora comincerei a guardare bene data1.
Io proverei cosí
x <- matrix(rnorm(100), ncol=4) centers <- matrix(1:8, nrow=2)
e lancerei il comando con x e centers, se cosí non dovesse dare problemi allora comincerei a guardare bene data1.
Il problema credo di averlo risolto.
In pratica ho trasformato il file in formato txt e con il separatore "\t " riesco ad aprirlo e a farlo riconoscere come una matrice 50x4. Forse con il formato csv non va usata la virgola ma un altro separatore.
Comunque in qualche modo sono riuscito in questa maniera a lanciare l'algoritmo.
Grazie comunque.
In pratica ho trasformato il file in formato txt e con il separatore "\t " riesco ad aprirlo e a farlo riconoscere come una matrice 50x4. Forse con il formato csv non va usata la virgola ma un altro separatore.
Comunque in qualche modo sono riuscito in questa maniera a lanciare l'algoritmo.
Grazie comunque.