1
install.packages("xlsx")
install.packages("stringr")
library(xlsx) #pacote para ler os arquivos do excel
library(stringr)
library(e1071) #pacote para calcular a curotse e o skewness
#Função que realiza calculos que preciso
calculos <- function(empresa){
# calculando o retorno
retorno <- diff(log(empresa[,5]))
#calculando media do retorno
media_retorno <- mean(retorno)
#calculando o risco
desvio_retorno <- sd(retorno)
#os 10 menores valores
minimo <- sort(retorno, decreasing = FALSE)
#os 10 maiores valores
maximo <- sort(retorno, decreasing = TRUE)
#somando os 10 maiores valores
soma_10_max <- sum(maximo[1:10])
#somando os 10 menores valores
soma_10_min <- sum(minimo[1:10])
#somando os 20 maiores valores
soma_20_max <- sum(maximo[1:20])
#somando os 20 menores valores
soma_20_min <- sum(minimo[1:20])
#somando os 50 maiores valores
soma_50_max <- sum(maximo[1:50])
#somando os 50 menores valores
soma_50_min <- sum(minimo[1:50])
#Calculando a curtorse com o pacote e1071
curtose <- kurtosis(retorno, type = 1)
#Calculando o Skewness com o pacote e1071
skewness <- skewness(retorno, type=1)
#Calculando o shapiro
shapiro <- shapiro.test(retorno)
distancia_10_max <- (mean(maximo[1:10]) - mean(retorno))/sd(retorno)
distancia_10_min <- (mean(minimo[1:10]) - mean(retorno))/sd(retorno)
distancia_20_max <- (mean(maximo[1:20]) - mean(retorno))/sd(retorno)
distancia_20_min <- (mean(minimo[1:20]) - mean(retorno))/sd(retorno)
distancia_50_max <- (mean(maximo[1:50]) - mean(retorno))/sd(retorno)
distancia_50_min <- (mean(minimo[1:50]) - mean(retorno))/sd(retorno)
#Cria um vetor com todos os resultados dos calculos que realizamos.
result_calculos <- c(media_retorno, desvio_retorno, soma_10_max,
soma_20_max, soma_50_max, soma_10_min, soma_20_min,
soma_50_min, curtose, skewness, shapiro,
distancia_10_max,
distancia_20_max, distancia_50_max, distancia_10_min,
distancia_20_min, distancia_50_min)
print(result_calculos) #exibe os resultados.
}
#Lista todos os arquivos de uma pasta
nome_arquivo <- list.files()
# lendo os arquivos que estão na pasta, i é a posição do nome do arquivo
for(i in 1:length(nome_arquivo)){
tmp <- read.xlsx(nome_arquivo[i], sheetIndex =1,startRow=4)
nome <- substr(nome_arquivo[i],1,nchar(nome_arquivo[i])-5)
assign(nome, tmp)
rm(nome)
rm(tmp)
}
How to use a function within for and each result save as a data-frame line?
How do I include in the for that reads the files in the folder the function I created that performs the calculations I need? The results of these calculations should be saved in a data-frame where each line is the result vector of the function I created.
Why the tag
rstudio
? This tag should only be used if the question is about something that only happens in Rstudio.– Rui Barradas
Is twice
soma_20_max
, maybe the second time issoma_50_max
?– Rui Barradas