# limpar ambiente
rm(list = ls())
# carregar pacotes necessários
pkgs <- c("dplyr", "readr", "fs", "tools")
to_install <- pkgs[!pkgs %in% rownames(installed.packages())]
if (length(to_install)) install.packages(to_install, dependencies = TRUE)
invisible(lapply(pkgs, library, character.only = TRUE))
# definir a pasta onde estão os arquivos CSV
pasta_csv <- "C:/Users/march/Downloads/Documents/resistrografo dados/Campo Alto/Bloco 01 a 15/csv_resistografocurso/renomeadoscursoresis/normalizadosCA24"
# criar pasta de saída "resultados"
pasta_saida <- "C:/Users/march/Downloads/Documents/resistrografo dados/Campo Alto"
# listar arquivos CSV
arquivos <- list.files(pasta_csv, pattern = "(?i)\\.csv$", full.names = TRUE)
# dataframe vazio para armazenar as médias
resultados <- data.frame(
  Individuo = character(),
  Mean_Drill = numeric(),
  Weighted_Mean_Amp = numeric(),
  Mean_Adj_Amp = numeric(),
  stringsAsFactors = FALSE
)
# loop de processamento
for (arq in arquivos) {
  cat("Processando:", basename(arq), "\n")
  df <- tryCatch(readr::read_csv(arq, show_col_types = FALSE),
                 error = function(e) { message("Erro ao ler:", basename(arq)); return(NULL) })
  if (is.null(df)) next
  # localizar colunas
  col_drill <- intersect(names(df), c("Drill","drill","Amplitude","amplitude","Amp","amp"))
  col_adj   <- intersect(names(df), c("Adj_Amp","adj_amp","Adjusted","adjusted","Amp_adj","amp_adj"))
  if (length(col_drill) == 0 && length(col_adj) == 0) {
    message("⚠️ Nenhuma coluna de amplitude encontrada em:", basename(arq))
    next
  }
  # calcular médias
  mean_amp <- if (length(col_drill)) mean(as.numeric(df[[col_drill[1]]]), na.rm = TRUE) else NA_real_
  mean_adj <- if (length(col_adj)) mean(as.numeric(df[[col_adj[1]]]), na.rm = TRUE) else NA_real_
  # média ponderada: amplitude média / profundidade de perfuração (0.1 mm)
  profundidade_ponto <- 0.1
  WMA <- if (!is.na(mean_amp)) mean_amp / profundidade_ponto else NA_real_
  # extrai o nome do indivíduo (remove apenas "_normalizado")
  nome_ind <- tools::file_path_sans_ext(basename(arq))
  nome_ind <- stringr::str_remove(nome_ind, "_normalizado$")
  resultados <- rbind(resultados, data.frame(
    Individuo = nome_ind,
    Mean_Drill = mean_amp,
    Weighted_Mean_Amp = WMA,
    Mean_Adj_Amp = mean_adj,
    stringsAsFactors = FALSE
  ))
}
salvar <- fs::path(pasta_saida, "resultados_amplitudesporID.csv")
readr::write_csv(resultados, salvar)  # <- aqui usamos o caminho completo
cat("\n Resultados salvos com sucesso em:\n", salvar, "\n")
