그래서 나는 웹에서 여러 국가의 통화로 다운로드 된 각 파일에 대해 .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")
}
루프에 의해 변경된 각 URL을 읽을 수 있지만 다운로드하거나 CSV를 개별적으로 저장할 수는 없습니다. 이 과정에서 각각이 codigo.html이라는 파일에 "저장"되는 것을 볼 수 있으며 마지막에는 목록의 마지막 국가와 함께 codigo.html 및 codigo.csv를 얻습니다.
문제는 모든 것을 동일한 파일 이름에 저장한다는 것입니다. 루프를 통과 할 때마다 이전 내용을 완전히 덮어 씁니다.
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)
}
디스크에 csv 파일을 만드는 대신 목록을 사용하여 데이터를 보관하는 것이 더 나을 수 있으므로 목록을 조작 할 수 있습니다.
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
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다