Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用循环(for)使用R中列表中的名称下载.file并写入.csv_R_Loops_Csv_For Loop - Fatal编程技术网

如何使用循环(for)使用R中列表中的名称下载.file并写入.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

因此,我必须为每个下载的文件编写.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("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")