2017-05-01 10 views
0

Ich möchteErstellen Matrix von Faktoren von Datenrahmen in R

einen Faktor Datenrahmen, zu einem Faktor Matrix konvertieren Aber wenn ich den Code unten versuchen, ist die Art der Matrix noch Zeichenfolge

mydata=data.frame(f1=c("yes","yes","no","no"),f2=c("yes","no","no","yes")) 
mydata[1:ncol(mydata)]=lapply(mydata[1:ncol(mydata)],factor) 

mymatrix=as.matrix(mydata) 

#this line didn't help (the matrix still string) 
mymatrix=apply(mymatrix,FUN =factor,MARGIN = 2) 
+2

Matrizen in R können im Allgemeinen nur eine der atomaren Typen sein, also sind Ihre Auswahlmöglichkeiten nur ein Zeichen oder die ganzzahligen Codes, die dem Faktor zugrunde liegen. – joran

Antwort

1

Vielleicht bekommen Sie das, was Sie brauchen?

mymatrix = matrix(mydata, ncol = 2) 
str(mymatrix) 

gibt Ihnen

List of 2 
$ : Factor w/ 2 levels "no","yes": 2 2 1 1 
$ : Factor w/ 2 levels "no","yes": 2 1 1 2 
- attr(*, "dim")= int [1:2] 1 2 

Sie müssten ein wenig mehr erklären, was Sie bekommen präzisere Hilfe tun wollen.

+0

Das ist genau das, was ich brauche, ich sollte Matrix statt as.matrix verwenden Danke – Nobel

+0

Aber etwas Merkwürdiges passiert hier, wenn ich mydata [1,1] aufrufen gibt es "ja", aber Matrix [1,1] gibt die zurück ganze Spalten [1] ja ja nein nein – Nobel

+0

Ja, hauptsächlich bekommen Sie zwei Listen, deshalb bekommen Sie dieses Ergebnis. Denken Sie daran, dass Faktoren nur dann sinnvoll sind, wenn Sie eine Liste haben. From (http://www.statmethods.net/input/datatypes.html) "Der Faktor speichert die Nominalwerte als Vektor von ganzen Zahlen im Bereich [1 ... k] (wobei k die Anzahl der eindeutigen Werte in ist) die nominale Variable) und ein interner Vektor von Zeichenketten (die ursprünglichen Werte), der auf diese ganzen Zahlen abgebildet wird. ". Ist kein Datentyp wie Integer oder Double. Vielleicht könnten wir Ihnen mehr helfen, wenn Sie uns sagen, was Sie erreichen wollen. Warum willst du eine Matrix von "Faktoren"? – Umberto

Verwandte Themen