如何使用循环(for)使用R中列表中的名称下载.file并写入.csv
因此,我必须为每个下载的文件编写.csv,使用来自许多国家的货币,从网络上下载。我想用他们的滴答声来保存它 所以我做了如何使用循环(for)使用R中列表中的名称下载.file并写入.csv,r,loops,csv,for-loop,R,Loops,Csv,For Loop,因此,我必须为每个下载的文件编写.csv,使用来自许多国家的货币,从网络上下载。我想用他们的滴答声来保存它 所以我做了 codigos = list("JPY", "RUB","SGD","BRL","INR","THB","GBP","EUR","CHF") for (i in 1:9){ url1 = 'http://www.exchangerates.org.uk/' url2='-USD-exchange-rate-history-full.html' codigos = list
codigos = list("JPY", "RUB","SGD","BRL","INR","THB","GBP","EUR","CHF")
for (i in 1:9){
url1 = 'http://www.exchangerates.org.uk/'
url2='-USD-exchange-rate-history-full.html'
codigos = list("JPY", "RUB","SGD","BRL","INR","THB","GBP","EUR","CHF")
codigo = codigos[i]
url <- paste(url1, codigo, url2, sep = "")
download.file(url, destfile='codigo.html')
dados <- readHTMLTable('codigo.html')
write.csv(dados, file="codigo.csv")
}
codigos=list(“日元”、“卢布”、“新加坡元”、“巴西雷亚尔”、“印度卢比”、“泰铢”、“英镑”、“欧元”、“瑞士法郎”)
(我在1:9中){
url1=http://www.exchangerates.org.uk/'
url2='-USD汇率历史记录完整.html'
codigos=清单(“日元”、“卢布”、“新加坡元”、“巴西雷亚尔”、“印度卢比”、“泰铢”、“英镑”、“欧元”、“瑞士法郎”)
codigo=codigos[i]
url问题是您正在将所有内容保存到同一个文件名。每次通过循环都将完全覆盖以前的内容
还请注意,readHTMLTable将采用URL。因此,可能需要这样做:
for (i in 1:9){
url1 = 'http://www.exchangerates.org.uk/'
url2='-USD-exchange-rate-history-full.html'
cod = codigos[i]
url <- paste(url1, cod, url2, sep = "")
dados <- readHTMLTable(url)
# Create a unique name for each file
filename <- paste(cod, 'csv', sep='.')
write.csv(dados, file=filename)
}
for(1:9中的i){
url1=http://www.exchangerates.org.uk/'
url2='-USD汇率历史记录完整.html'
cod=codigos[i]
urla)在你的循环中“url你是什么意思”它不能下载它们,也不能保存csv"?你有错误吗?代码运行正常吗?如果你在循环外运行,变量会得到你期望的值吗?代码运行正常,但它不会按照我的需要得到每个国家的每个文件,它会给我一个列表中最后一个国家的文件,名为codigos.csv,而不是他们需要的勾号…你是在谈论 > CODIGO?CSV 文件?你似乎从来没有改变文件名,所以你每次都写同一个文件。这可能与它有关。@ USS36934 74如果它工作,你应该考虑按下绿色复选标记来接受答案并关闭问题。
url1 <- 'http://www.exchangerates.org.uk/'
url2 <- '-USD-exchange-rate-history-full.html'
l <- lapply(codigos
, function(i) readHTMLTable(paste0(url1, i, url2))
)
names(l) <- codigos
url <- paste(url1, cod, url2, sep = "")
download.file(url, destfile='cod.html')
write.csv(url, file= "nome")