# acessopordiaporaluno # # Imprime a frequencia de acesssos por dia de cada aluno # Executa o teste de periodicidade de fischer para cada um dos Students. library(ggplot2) library(stringr) library(ptest) #seleciona caminho do diretório dos arquivos setwd("C:/aztrau/atlas/docs/final/semestre heat2/todos") #limpa os registros rm(list = ls()) teste=0 # carrega os arquivos de log fileList <- list.files(path=".", pattern="*") #cria a lista dos Access dos Students data.list <- sapply(fileList, read.csv, header = FALSE) #número de Students (arquivos) tamanho=length(data.list) #percorre a lista dos arquivos dos Access dos Students for (var in 1:tamanho) { if (!var %% 2) next #carrega o nome das lâminas acessadas laminas <- as.character(data.list[[var]]) Encoding(laminas) <- "UTF-8" #constrói a string momentos no formato de data momento <- str_sub(data.list[[var+1]], 2,-1) momentoa <- paste("2019/",momento, sep='') # adiciona o ano momentos <- as.POSIXct(momentoa, format="%Y/%d/%m %H:%M:%S") #define o formato de data #extende os dados por todos os Days da análise x <- as.POSIXlt("2019-08-26 12:10:40 -02") y<-x for (cont in 1:110){ #período de análise #print(x) momentos[length(momentos)+1]<-x x$mday<-x$mday+1 y[length(y)+1]<-x } y<-y[-111] y<-as.POSIXct(y) #imprime os gráficos ##df <- (data.frame(momentos,laminas))7 ##dev.new() ##print(ggplot(data = df, mapping=aes(x = momentos, y = laminas)) + geom_point(color = "#FC4E07", size = 2) +ggtitle(fileList[(var+1)/2])) #conta os Access por dia na tabela tab #print(var) # número do aluno tab<-table(cut(momentos,"day")) # Access por dia de cada aluno z<-as.vector(tab) #print(" ") #print (z) print(fileList[(var+1)/2]) # nome do aluno if (teste==0){ #para o primeiro dado do vetor de Students toz<-z #grava a primeira posição do vetor teste=1 } toz<-cbind(toz,z) #grava as demais posições #plot.ts(z) # gráfico da série temporal #imprime a tabela dos Access por dia #print(data.frame(Dia=format(as.Date(names(tab)), "%d/%m"),Frequencia=as.vector(tab))) } print(toz) toz<-toz[,-1] #utiliza apenas os dados dos Days dos Access #class(z) ##heatmap(toz, scale = "column") ##heatmap(toz, scale = "row") toz.df<-as.data.frame(t(toz)) #cria o data frame para imprimir o gráfico de heat map nome<-paste0("a",seq(1,length(fileList))) #eixo x - nome dos Students Days<-y # eixo y data<-expand.grid(Students=nome, Days=Days) #expande a matriz para todos os Students total=length(Days)*length(nome) for(conta in 1:length(Days)){ for(contab in 1:length(nome)){ if (toz.df[contab,conta]==1){toz.df[contab,conta]<--250} data$Access[(conta-1)*length(nome)+contab]=toz.df[contab,conta] } } li=1.2 sp<-ggplot(data,aes(Students,Days,fill=Access)) + geom_tile()+ scale_fill_gradient(low="white", high = "blue") + ggtitle("Turma 2")+theme(axis.title=element_text(size=18))+theme(axis.text = element_text(size=12)) sp<-sp + geom_hline(yintercept = as.POSIXct("2019-11-26 12:10:40 -02"),linetype="dashed", color = "red", size =li) sp<-sp + geom_hline(yintercept = as.POSIXct("2019-10-01 12:10:40 -02"),linetype="dashed", color = "red", size =li) sp<-sp + geom_hline(yintercept = as.POSIXct("2019-09-03 12:10:40 -02"),linetype="dashed", color = "red", size =li) sp sp<-ggplot(data,aes(Students,Days,fill=Access)) + geom_tile()+ scale_fill_gradient(low="white", high = "blue") + ggtitle("Class 2")+theme(axis.title=element_text(size=18))+theme(axis.text = element_text(size=12)) sp<-sp + geom_hline(yintercept = as.POSIXct("2019-11-26 12:10:40 -02"),linetype="dashed", color = "red", size =li) sp<-sp + geom_hline(yintercept = as.POSIXct("2019-10-01 12:10:40 -02"),linetype="dashed", color = "red", size =li) sp<-sp + geom_hline(yintercept = as.POSIXct("2019-09-03 12:10:40 -02"),linetype="dashed", color = "red", size =li) sp