#=============================================================================== # Name : Dicas na bandeja # Author : J.C.Faria # Date : 2024-05-17 21:01:13 # Aim : Auxiliar os alunos de CET699 a fazerem a prova no R # Mail : <<>> #=============================================================================== # Obs: # Foram usadas funções baixo nível para ese script. # Ele está funcional! # Existem pacotes que oferecem maiores facilidades, # vai do interesse de cada um buscar e usar. #=============================================================================== #. Identificação do grupo ng <- 'ref_20241' #ng <- 'G1' #. Leitura dos dados dad <- read.table('https://lec.pro.br/download/faria/cet699/provas/dados_p2.txt', head=T) str(dad) # Observar presença de valores ausentes e outliers summary(dad) #. Seleção dos dados do grupo # Faz seleção nas colunas usando expressão regular dad_g <- dad[, grep(paste0(ng, '[.]'), names(dad))] # Pode usar também o pacote famoso (dplyr) que facilita trabalhar com os dados #require(dplyr) #dad_g <- dad_read %>% # select(starts_with(paste0(ng, '.'))) #.. Correção problemas encontrados nos dados # Necessário trocar o (character) que está na coluna "Sexo" por NA (real, not available) # para poder ser eliminada toda a linha na função: remove_outlier_grupos # que usa, inernamente, a função 'na.omit' dad_g[, 3] <- gsub(pattern='', replacement=NA, x=dad_g[, 3]) #.. Verificação dos dados str(dad_g) # Observação da presença de outliers boxplot(dad_g[, 1:2]) #. Remoção de outlier #.. Carregando função de remoção de outlier no R source('https://lec.pro.br/download/R/funcoes/remove_outlier_grupos.R') ls() #.. Remoção para todos os sexos dad_l <- remove_outlier_grupos(dad_g) # Observação da presença de outliers boxplot(dad_l[, 1:2]) #.. Divisão por sexo # Masculino sex_m <- grep('M', x=dad_l[,3]) dad_m <- dad_l[sex_m, ] # Verificar a nessidade de remoção adicional de outlier após divisão por sexo boxplot(dad_m[, 1:2]) # Se aparecer outlier usar a função 'remove_outlier_grupos' novamente dad_m <- remove_outlier_grupos(dad_m) boxplot(dad_m[, 1:2]) # Feminino sex_f <- grep('F', x=dad_l[,3]) dad_f <- dad_l[sex_f, ] # Necessidade de remoção adicional de outlier após divisão por sexo boxplot(dad_f[, 1:2]) # Se aparecer outlier usar a função 'remove_outlier_grupos' novamente dad_f <- remove_outlier_grupos(dad_f) boxplot(dad_f[, 1:2]) #. Análise #.. R # Daqui pra frente dá pra fazer a análise de boa, por exemplo: library(psych) describe(dad_m[,1:2]) describe(dad_f[,1:2]) #.. Exportanto para usar os dados - limpos - em outro(s) programa(s) # Os dados serão gravados na raiz da pasta "Documents" do Windows # Masculino write.csv(dad_m, paste0(path.expand('~'), '\\dad_m.csv')) # Feminino write.csv(dad_f, paste0(path.expand('~'), '\\dad_f.csv'))