Helo, i am having a problem to add a column in a for instrunctions.
I am using a "for instructions" to download create 5 dataframes , and inside the FOR instruction i have a Functoin to add a calculated column.
If anyone, could help
my code is bellow:
require("Quandl")
require("dygraphs")
require("magrittr")
require("PerformanceAnalytics")
require("quantmod")
require("lubridate")
# Trazendo data atual do sistema
hoje <- Sys.Date()
hoje
# TRatamento da data para formato de nome do arquivo
ano <- format(hoje, format = "%Y")
ano
mes <- format(hoje, format = "%m")
mes
dia <- format(hoje, format = "%d")
dia
anomes <- paste(ano, mes)
anomes
gsub("\\s", "", anomes)
# preparação do nome do arquivo
data_arquivo <- paste(ano, mes, dia)
data_arquivo <- gsub("\\s", "", data_arquivo)
data_arquivo
endereco <- sprintf("dados/ipca_%s.csv", data_arquivo)
endereco
# Definir sua api key
Quandl.api_key('XXXXXXXXXXXXX')
# Função para inflação acumulada
ano1 = format(df$data[1], format = "%Y")
ano1 = as.integer(ano1)
anomes <- paste(ano1, mes)
anomes
jur1 = 0
acum_jur = 0
Acum <- function(){
ano1 = format(df$data[1], format = "%Y")
ano1 = as.integer(ano1)
anomes <- paste(ano1, mes)
anomes
jur1 = 0
acum_jur = 0
for (x in df$data){
dia3 = as.Date(x)
ano2 = (format(dia3, format = "%Y"))
ano2 <- as.integer(ano2)
mes <- format(dia3, format = "%m")
jur = df$tx_jur[df$data == dia3]
if (ano2 == ano1)
{
anomes <- paste(ano2, mes)
acum_jur1 = (((1 + (jur/100)) * acum_jur) + jur)
acum_jur <- acum_jur1
df$acum_jur[df$data == dia3] <- round(acum_jur1, 2)
}
else
{
ano1 = ano1 + 1
anomes <- paste(ano2, mes)
acum_jur1 = df$tx_jur[df$data == dia3]
acum_jur <- acum_jur1
df$acum_jur[df$data == dia3] <- round(acum_jur1, 2)
}
}
}
#Coletar dados
tab <- read.csv("dados/tabelas.csv", sep = ";" )
View(tab)
count = 1
for (i in tab[, 1]){
ident <- tab[count, 1]
tabela1 <- tab[count, 2]
tabela2 <- tab[count, 3]
df1 <- tab[count, 4]
tabela <- Quandl(ident)
tabela3 <- Quandl(ident, transform = "diff")
df <- merge(tabela, tabela3, by.x = "Date", by.y = "Date" , all = TRUE)
colnames(df) <- c("data", "tx_jur", "var_jur")
Acum()
assign(tabela1, tabela)
assign(tabela2, tabela3)
assign(df1, df)
count = count + 1
}