2016-10-05 1 views
0

mein erster Beitrag also bitte Geduld :).Wie ändere ich den Namen mehrerer Datenrahmen in R, indem ich denselben Ausdruck "_movie1" hinzufüge?

ich mehrere data.frames mit dem Code importiert:

setwd("C:/movie1") 
data_list <- list.files(pattern="*.csv") 

for (i in 1:length(data_list1)) 
assign(data_list1[i], 
    read.csv(data_list1[i], 
        sep= ",", 
        dec = ".", 
        header = T)) 

, die in data.frames Folge genannt: "well_0.csv", "well_1.csv" usw. (ich diesen Frieden gefunden von Code hier, also danke)

Da ich einen anderen Satz von data.frames aus einem anderen Verzeichnis, aber mit identischen Namen importieren und sie zusammenführen möchte, möchte ich die Namen dieser data.frames in etwas wie ändern " well_0_movie1 "oder zumindest" well_0.csv_movie1 ", so dass R sie nicht überschreibt. Bitte helfen

+2

Müssen Sie 'assign' verwenden? Warum lesen Sie nicht einfach die data.frames mit lapply in eine Liste? – Dason

+2

Tun Sie sich einen großen Gefallen [und verwenden Sie eine Liste von Datenrahmen statt einer Reihe von sequenziell benannten Datenrahmen] (http://stackoverflow.com/a/24376207/903061). – Gregor

+0

@Gregor Ich habe mir das gedacht, aber ich müsste meinen ganzen Code neu schreiben und ich weiß nicht, ob ich momentan die Zeit oder Fähigkeit dazu habe, aber tnx für den Link. Sagen Sie das, weil es die Ausführung beschleunigt (das ist was ich lese) oder die Handhabung von Daten erleichtert? – BStat

Antwort

1

Sie können die .csv vom ersten Mal entfernen Sie Ihre Daten laden, indem Sie gsub verwenden und anschließend paste_movie1 hinzufügen verwenden:

data_list1 <- list.files(pattern="*.csv") 
for (i in data_list1) 
    assign(gsub(".csv","",i), 
     read.csv(i,header=T)) 


#Second time (in a different directory) 
data_list2 <- list.files(pattern="*.csv") 
for (j in data_list2) 
    assign(paste(gsub(".csv","",j),"movie1",sep = "_"), 
     read.csv(j,header=T, sep = ",", dec = ".")) 

Ich hoffe, dass dies hilfreich ist.

+0

Dies funktioniert, perfekt. Vielen Dank: D – BStat

+0

Gern geschehen! Bitte beachten Sie, dass Sie es als akzeptiert markieren, indem Sie auf das grüne Häkchen klicken. – Abdou

0

Sie tun können

assign(sprintf("%s_movie1",data_list1[i]), read.csv(data_list1[i], sep= ",", dec = ".", header = T)) 

Ich kann es nicht richtig testen jetzt, ich hoffe auf einen typografischen Fehler nicht zu haben.

Verwandte Themen