2016-03-24 4 views
-2

Ich versuche, Textdateien aus zwei Unterebenen von Ordnern zu lesen, und jetzt möchte ich die Zeilen und Spalten des Datenrahmens mit den entsprechenden Ordnernamen festlegen.R: Wie werden Datenrahmenzeilen mit den Ordnernamen benannt?

Sooo ... zum Beispiel

folder1-----sub-folder A---text file<a> 
     -----sub-folder B---text file<b> 
folder2-----sub-folder A---text file<c> 
     -----sub-folder B---text file<d> 

Ich möchte, dass meine Datenrahmen wie folgt aussehen:

| A  B 
-------------- 
1 | a  b 
2 | c  d 

Eine Möglichkeit ist zu tun, um einen Vektor von A & B und Paste zu machen dieser Vektor zu den Zeilennamen des Datenrahmens. Da jedoch die tatsächliche Anzahl der Ordner und Dateien immens ist, möchte ich die Zeilen/Spalten des Datenrahmens mit ihren Inhalten entsprechen (das ist Datei a, b, c, d).

Vielen Dank im Voraus :)

+0

'basename' und' dirname' zu ​​konvertieren. Wenn Sie also eine Liste von Dateinamen einschließlich Pfaden haben, können Sie einfach einen solchen Datenrahmen mit diesen beiden Befehlen erstellen. – coffeinjunky

+0

Diese Frage muss zeigen, was Sie versucht haben. Was hast du probiert? –

+0

@coffeijunky Oops Danke, dass ich es tat! – prejay10

Antwort

2

Wenn Sie Dateinamen zufällig i nicht yoru Frage beantworten kann. Wenn sie jedoch nach Datum oder etwas ähnliches wie Folder_1 bestellt, denkt Folder_2 Sie folgende verwenden:

filepath <- "C/User/....(where the folders are)" 
pattern <- "Folder" 
Forwards_CSV_path = list.files(filepath, 
            pattern = pattern, full.names=TRUE, 
            ignore.case=TRUE) 

pattern sind Ihre Suchkriterien in diesem bestimmten Ordner die Ausgabe eine Liste der Ordner-/Dateinamen sein.

da die Ausgabe wird die Datei/Ordnernamen nur sein, möchten Sie vielleicht alle Ordner und Unterordner Verzeichnisnamen sammeln und yoru Verzeichnis Adressen einrichten:

paste0() oder paste() werden Sie Charakter Vektoren binden zusammen helfen.

paste("c/user/,.....", "Folder_1") 

Sobald Sie Ihre Unterordner haben, können Sie die Adressen mit demselben Code wie oben beschrieben durchlaufen.

können Sie as.matrix() und cbind() verwendet, um sie zu Ihrem gewünschten Format und hilfreich sein könnte

Verwandte Themen