Oi Luis,

Assim fica bem mais elegante =)
Muito obrigada pela dica!

Queria aproveitar para perguntar se você saberia um jeito de obter do yahoo usando o R todos os tickers das companhias pertencentes ao NIKKEI, porque ao invés de escrever os 225 tickers no symbol, eu puxaria direto.

Muito obrigada mais uma vez!

Em 13 de março de 2015 09:50, Luis G. S. e Silva <lgsilvaesilva@gmail.com> escreveu:
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]
  
              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
 



--
Grato
Augusto C. A. Ribas
 

_______________________________________________
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

_______________________________________________
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.