2015-07-24 7 views
5

Ich habe Datenrahmen wie folgt:K Means Clustering in R - ignorieren Reihe id

X1  X2   X3 
3 102.20000 26.07667 
4 115.00000 25.12500 
5 36.70000 35.05545 

Wo Spalte X1 für eine Reihe eindeutige Kennung bezeichnet, während X2, X3 sind Funktionen

Ich möchte Skalierung auszuführen vor der Durchführung K-Means-Algorithmus auf einer Daten,

mydata <- scale(mydata) 


    X1    X2   X3 
-11715.6  -12.2200734 -9.7826627 
-11714.6  0.5799266 -10.7343294 
-11713.6  -77.7200734 -0.8038748 

ich nicht Spalte X1 skalieren möchten, aber möchte es auf Datenrahmen bleiben. Irgendeine Möglichkeit, es zu tun?

+0

Unterteilen Sie einfach den Datensatz und führen Sie die 'Skalierung' in anderen Spalten als der ersten Spalte aus (wenn ich Ihre Frage verstehe)' mydata [, - 1] <- scale (mydata [, - 1]) ' – akrun

Antwort

4

Sie können den eindeutigen Bezeichner für die Datenrahmenzeilen über ihre rownames markieren.

rownames(mydata) = mydata$X1 
mydata$X1 = NULL 
mydata = scale(mydata) 

Wenn Sie dann k-means auf den skalierten Daten ausgeführt werden sollen, würde ich nur die Zeilennamen lassen, wie die Kennungen für eine Analyse zu tun. Sie können sie jederzeit mit mydata$X1 = rownames(mydata) zurückstellen.

Verwandte Themen