2013-08-23 22 views
8

Ich habe eine Liste von .csv Dateien, die ich in R eingelesen und in einem großen Datenrahmen namens data platziert, die aus 6 data.frames besteht, die die 6 Dateien sind in filenames. Mein Code so weit ist:Konvertieren von Zeilennamen in mehreren Datenrahmen in Spalte im Datenrahmen

filenames <- list.files(paste(mainDirInput,sep=""), pattern="Out.*csv", full.names=TRUE) 
data = lapply(filenames, function(f) { 
wb = read.csv(f, header=TRUE) 
}) 

Die Zeilen und Spaltennamen in jedem data.frame sind genau die gleichen, ich möchte die Zeilennamen extrahieren und stattdessen haben sie als erste Spalte in R. Ein Beispiel einer meines Datenrahmen würde so aussehen:

  w x y z 
2012 01  12 43 87 09 
2012 02  14 53 75 76 
2012 03  76 34 76 28 
2012 04  41 36 85 16 
    :   : : : : 
    :   : : : : 

ich brauche auch diesen Code auf anderen Dateien verwenden zu können, so kann ich nicht einfach nur eine neue Spalte mit den Werten erstellen 2012 01, 2012 02, 2012 03...

Antwort

29

Sie haben eine dataframe mit Spalten namens "w, x, y , z ". Tun Sie einfach

data$names <- rownames(data) 

, um eine neue Spalte hinzuzufügen.

+0

Danke, das funktioniert für meine individuellen data.frames, also funktioniert es, wenn ich es auf 'data [[1]] $ name <-ownownames (data [[1]])' 'anwende, aber' data' ist eine Liste von 6 individuellen data.frames, suche ich nach einer Möglichkeit, etwas ähnliches anzuwenden, was du mir gegeben hast, aber zu all meinen Daten.frames in 'Daten'. – userk

+1

Oh, das funktioniert, wenn ich es in einer for-Schleife anwende! 'für (k in 1: Länge (Daten)) { Daten [[k]] $ Datum <- rownames (Daten [[k]])}' Danke für Ihre Hilfe – userk

Verwandte Themen