
Michelle, Essa tarefa pode ser realizada eliminado os loops (for) e algumas linha também. Dá uma olhadinha no script abaixo. Abraço symbol<-c("XOM","AAPL", "DIS") getCSV <- function(symbol){ URL <- paste0("http://chartapi.finance.yahoo.com/instrument/1.0/", symbol, "/chartdata;type=quote;range=1d/csv") tab <- read.table(URL, sep = ",", dec = ".", skip = 17) colnames(tab) <- paste(c("timestamp","close","high","low","open","volume"), 1:6, sep = "-") rownames(tab) <- paste(symbol, 1:nrow(tab)) SAIDA <- paste0("Dados",symbol,"yahoo20150312.txt") write.table(tab, file = SAIDA, sep = ";", dec = ".", header = T) } sapply(symbol, getCSV) 2015-03-13 9:34 GMT-03:00 Michelle Bau Graczyk <mbgraczyk@gmail.com>:
Oi Augusto!
Deu certo! Foi puro descuido mesmo com o symbols e o symbol!
Muito obrigada!!
Em 13 de março de 2015 09:00, Augusto Ribas <ribas.aca@gmail.com> escreveu:
Ignore meu comentário anterior, não tinha olhado a identação direito.
symbols<-c("XOM","AAPL", "DIS") for(i in 1:length(symbols)){ symbol <- symbols[i] URL <- paste0("http://chartapi.finance.yahoo.com/instrument/1.0/", symbol, "/chartdata;type=quote;range=1d/csv") tmp <- readLines(URL) tabela<-tmp[18:length(tmp)] tabela_split<-strsplit(tabela,",") # matriz para receber os dados
dados<-matrix(NA,ncol=length(tabela_split[[1]]),nrow=length(tabela_split)) for(j in 1:length(tabela_split)) { dados[j,]<-as.numeric(tabela_split[[j]]) } # organizar os nomes de colunas linhas dimnames(dados)<-list(paste(symbol,1:length(tabela_split)),
paste(c("timestamp","close","high","low","open","volume"), 1:length(tabela_split[[1]]))) SAIDA<-paste0("Dados",symbol,"yahoo20150312.txt") write.table(dados,file= SAIDA) }
Mas seu codigo funcionou aqui, so mudei o começo ali
symbol<-c("XOM","AAPL", "DIS") for(i in seq_along(symbols)){
symbol <- symbols[i]
vc criava um vetor symbol e fazia o for no symbols. Mas rodando ali em cima ele criou certinho as três planilhas.
Em 13 de março de 2015 07:51, Augusto Ribas <ribas.aca@gmail.com> escreveu:
Imagino que você está salvando tudo mas sobrepondo os dados, salve com
nomes de arquivos diferentes, por exemplo no final do seu script tente algo assim
write.table(dados,file= paste0("SAIDA_",i,".txt"))
Assim, você vai salvar um SAIDA_XOM.txt SAIDA_AAPL.txt SAIDA_DIS.txt
E assim vai.
Agora eu acho que você salva o XOM em SAIDA, depois salva por cima os dados do AAPL no SAIDA, depois salva por cima os dados do DIS
a função write.table sempre salva no mesmo lugar, o file= a mesma coisa sempre.
Em 12 de março de 2015 17:51, Michelle Bau Graczyk <mbgraczyk@gmail.com> escreveu:
Boa noite,
Com ajuda de colegas do grupo montei um programa para pegar dados do yahoo e organiza-los. Porém, eu preciso pegar para vårias empresas e por isso fiz um laço com o uso da função for para imprimir a saida. Porem, eu não estou conseguindo fazer com que ele imprima todos e sim, somente o ultimo elemento. No caso abaixo, ele só imprime e salva o arquivo referente a empresa DIS enquanto eu também quero das outras. Já tentei colocar o write.table no final da última chaves mas também não imprimiu de todos os arquivos.
Muito obrigada!
Michelle
symbol<-c("XOM","AAPL", "DIS") for(i in seq_along(symbols)){
symbol <- symbols[i]
URL <- paste0("http://chartapi.finance.yahoo.com/instrument/1.0/", symbol, "/chartdata;type=quote;range=1d/csv")
tmp <- readLines(URL)
tabela<-tmp[18:length(tmp)]
tabela_split<-strsplit(tabela,",")
# matriz para receber os dados
dados<-matrix(NA,ncol=length(tabela_split[[1]]),nrow=length(tabela_split))
for(j in 1:length(tabela_split)) { dados[j,]<-as.numeric(tabela_split[[j]]) }
# organizar os nomes de colunas linhas
dimnames(dados)<-list(paste(symbol,1:length(tabela_split)),paste(c("timestamp","close","high","low","open","volume"),1:length(tabela_split[[1]])))
SAIDA<-paste0("Dados",symbol,"yahoo20150312.txt")
write.table(dados,file= SAIDA)
}
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Grato Augusto C. A. Ribas
Site Pessoal: http://recologia.com.br/ <http://augustoribas.heliohost.org> Github: https://github.com/Squiercg Lattes: http://lattes.cnpq.br/7355685961127056
-- Grato Augusto C. A. Ribas
Site Pessoal: http://recologia.com.br/ <http://augustoribas.heliohost.org> Github: https://github.com/Squiercg Lattes: http://lattes.cnpq.br/7355685961127056
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Luís Gustavo Silva e Silva