2016-11-26 9 views
0

Ich habe eine Frage, die mich verrückt macht. Ich habe die folgenden Tabellen als meine Quelltabelle:R, umbenennen Tausende von heruntergeladenen Dateien

v1 v2

1 http://www.sec.gov/Archives/edgar/data/20/0000893220-01-000315.txt

2 http://www.sec.gov/Archives/edgar/data/20/0000893220-03-000441.txt

3 http://www.sec.gov/Archives/edgar/data/20/0000893220-04-000596.txt

4 http://www.sec.gov/Archives/edgar/data/20/0000893220-05-000728.txt

5 http://www.sec.gov/Archives/edgar/data/20/0000893220-06-000650.txt

.....

Grundsätzlich habe ich die ID in V1 und URL in V2. Ich muss Tausende von ähnlichen Dateien auf einmal herunterladen. Bisher löste ich das Problem des Herunterladens durch folgenden Code: (sagen wir mal link der Datensatz ist die Tabelle, die ich oben liefern)

urls<-c(link$v2)

for (url in urls){ download.file(url, destfile = basename(url), quiet=T) }

Dieser Code funktioniert gut für das Herunterladen. Aber jetzt, statt den Namen der heruntergeladenen Datei als Original-Basisnamen wie 0000893220-01-000315.txt oder 0000893220-03-000441.txt usw. zu halten, möchte ich nach den Dateinamen ändern, um die ID in v1, die Datei als 1.txt zu nennen, 2.txt usw.

Kann mir jemand helfen, das zu lösen? Sehr geschätzt auf Ihre Hilfe :)

Antwort

1

Verwenden file.rename:

with(link, file.rename(basename(v2), paste0(v1, ".txt"))) 

Alternativ geben ihnen die Namen, den Sie wünschen, wenn Sie sie herunterladen:

nr <- nrow(link) 
for(i in 1:nr) with(link[i,], download.file(v2, destfile = paste0(v1, ".txt"), quiet=TRUE)) 
+0

Vielen Dank !!!! Es klappt sehr gut !!! – sxgn