2012-11-07 10 views

Antwort

36

Wenn Sie read.table() verwendet (oder einer seiner ilk, zB read.csv()), dann die einfache Lösung ist es, den Anruf zu ändern:

read.table(file = "foo.txt", row.names = 1, ....) 

wo .... ist andere Argumente, die Sie benötigt/verwendet. Das Argument row.names nimmt die Spaltennummer der Datendatei, von der die Zeilennamen übernommen werden sollen. Es muss nicht die erste Spalte sein. Siehe ?read.table für Details/Informationen.

Wenn Sie bereits die Daten in R und kann; t belästigt wird es noch einmal zu lesen, oder ist kamen aus einer anderen Strecke, setzen Sie einfach das rownames Attribut, und entfernen Sie die erste Variable von dem Objekt (unter der Annahme, obj wird Ihr Objekt)

rownames(obj) <- obj[, 1] ## set rownames 
obj <- obj[, -1]   ## remove the first variable 
+0

Sie könnten auch spaltenbasiertes Slicing verwenden (zumindest für Matrix und Dataframe). 'rownames (obj) <- t (obj [1]) ## erhalten Zeilennamen aus der ersten Spalte' 'obj <- obj [-1] ## erste Spalte entfernen ' – mpag

5

Siehe ?read.table. Grundsätzlich, wenn Sie read.table zu verwenden, geben Sie eine Zahl, die die Spalte:

##Row names in the first column 
read.table(filname.txt, row.names=1)