2016-05-11 3 views
1

Ich versuche, die Datentypen zu konvertieren, um die Daten korrekt zu plotten.R Programmierung in Bezug auf Typen Konvertierung

Meiner Meinung nach sind meine Codes ein wenig komplex und nicht effektiv.

Daher möchte ich einen Rat für bessere Codes bitten.

Unten sind meine Codes.

pos <- as.matrix(read.delim("urc_pos",header=FALSE)) 
neg <- as.matrix(read.delim("urc_neg",header=FALSE)) 
rownames(pos) <- 1:nrow(pos) 
pos_temp <- cbind("pos",pos[,3:42]) 
pos_temp_temp <- as.data.frame(pos_temp) 
for(i in 2:41) 
{ 
    pos_temp_temp[,i] <- as.numeric(as.character(pos_temp_temp[,i])) 
} 

urc_pos und urc_neg sind meine Datasets.

Zum Beispiel, als ich "is.numeric (pos [3,3])" tippte, gab es false zurück, weil es ein Vektor war. Daher muss der Datentyp in einen numerischen Typ konvertiert werden. Danach habe ich die Zeilennummern vergeben und in der ersten Spalte das Label "pos" hinzugefügt.

Und unten sind die Codes, die die Vektortypen in numerischen Typ konvertieren. Ich denke, dass es ein bisschen komplex und ungünstig ist. Weil ich denke, dass unnötige Prozeduren einschließlich der Umwandlung von Datentypen (data.frame -> character -> numeric) in die for-Schleifen involviert sind.

pos_temp_temp <- as.data.frame(pos_temp) 
for(i in 2:41) 
{ 
    pos_temp_temp[,i] <- as.numeric(as.character(pos_temp_temp[,i])) 
} 

Wie auch immer, ich habe das, was ich wollte. als ich "is.numeric (pos_temp_temp [3,3])" eingegeben habe, gab es TRUE zurück.

Allerdings möchte ich die besseren Lösungen für diese Probleme bekommen. Ich freue mich auf Ihre Antwort: D

+0

Wenn Ihre Codes ein wenig komplex sind und nicht effektiv sind, dann ist das ein Problem. Wenn Sie Ihre Hilfe suchen, verfeinern Sie Ihre Frage. –

+0

Fügen Sie bitte ein [reproduzierbares Beispiel] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610) ein. – Jaap

Antwort

1

Haben Sie den folgenden Code versucht:

pos_temp_temp<-as.numeric(as.character(pos_temp)) 

Im Allgemeinen sollten Sie versuchen, Schleifen zu vermeiden, wann immer possbile.

+0

Ich versuchte es, aber es brachte NA zurück. – sclee1

+0

Können Sie ein Beispiel für Ihre Daten geben? –