Spaces:
Sleeping
Sleeping
| library(shiny) | |
| require(gamlss) | |
| shinyServer(function(input, output, session){ | |
| four.hist <- function(k, f, p) { | |
| par(cex.main=0.95) | |
| inFile <- input$file1 | |
| if(is.null(inFile)) | |
| dt <- cars | |
| else dt <- read.csv(inFile$datapath, header=input$header, | |
| sep=input$sep) | |
| mod <- fitDist(dt[, p], type=f, k=k) | |
| par(mfrow=c(2, 2), bg='gray98') | |
| for(i in 1:4){ | |
| denst <- density(dt[, p]) | |
| res <- histDist(dt[, p], family=names(mod$fits)[i], | |
| main='', | |
| ylab='Density', | |
| xlab=p, las=1, | |
| line.wd=3, | |
| line.ty=1, | |
| line.col='dodgerblue2', | |
| ylim=c(0, (2 * max(denst$y)))) | |
| gaic <- round(-2 * logLik(res) + k * length(res$parameters), 2) | |
| title(main=paste(i, ')', names(mod$fits)[i], | |
| 'distribution with GAIC=', gaic), | |
| col.main='blue4') | |
| param <- c('mu', 'sigma', 'nu', 'tau') | |
| np <- length(res$parameters) | |
| fun1 <- function(x) eval(parse(text=x)) | |
| hat.param <- sapply(as.list(paste('res$', param[1:np], sep='')), fun1) | |
| hat.param <- round(hat.param, digits=2) | |
| txt <- paste('hat(', param[1:np], ')==', hat.param, sep='') | |
| txt <- paste(txt, collapse=', ') | |
| legend('topright', bty='n', | |
| legend=eval(parse(text=paste('expression(', txt, ')')))) | |
| } | |
| } | |
| four.hist.qqplot <- function(k, f, p) { | |
| par(cex.main=0.95) | |
| inFile <- input$file1 | |
| if(is.null(inFile)) | |
| dt <- cars | |
| else dt <- read.csv(inFile$datapath, header=input$header, | |
| sep=input$sep) | |
| mod <- fitDist(dt[, p], type=f, k=k) | |
| par(mfrow=c(4, 2), bg='gray98') | |
| for(i in 1:4){ | |
| denst <- density(dt[, p]) | |
| res <- histDist(dt[, p], family=names(mod$fits)[i], | |
| main='', | |
| ylab='Density', | |
| xlab=p, las=1, | |
| line.wd=3, | |
| line.ty=1, | |
| line.col='dodgerblue2', | |
| ylim=c(0, (2 * max(denst$y)))) | |
| gaic <- round(-2 * logLik(res) + k * length(res$parameters), 2) | |
| title(main=paste(i, ')', names(mod$fits)[i], | |
| 'distribution with GAIC=', gaic), | |
| col.main='blue4') | |
| param <- c('mu', 'sigma', 'nu', 'tau') | |
| np <- length(res$parameters) | |
| fun1 <- function(x) eval(parse(text=x)) | |
| hat.param <- sapply(as.list(paste('res$', param[1:np], sep='')), fun1) | |
| hat.param <- round(hat.param, digits=2) | |
| txt <- paste('hat(', param[1:np], ')==', hat.param, sep='') | |
| txt <- paste(txt, collapse=', ') | |
| legend('topright', bty='n', | |
| legend=eval(parse(text=paste('expression(', txt, ')')))) | |
| #qqnorm(runif(10)) | |
| n <- dim(dt)[1] | |
| a <- paste('q', names(mod$fits)[i], sep='') | |
| a <- paste(a, '(ppoints(n),', sep='') | |
| a <- paste(a, paste(hat.param, collapse=', '), ')') | |
| par(bty='n', col.axis='blue4', col.lab='blue4') | |
| qqplot(y=dt[, p], x=eval(parse(text=a)), | |
| xlab=a, ylab=p, col='blue4') | |
| axis(side=1, col='blue4') | |
| axis(side=2, col='blue4') | |
| } | |
| } | |
| observe({ | |
| inFile <- input$file1 | |
| if(is.null(inFile)) | |
| dt <- cars | |
| else dt <- read.csv(inFile$datapath, header=input$header, | |
| sep=input$sep) | |
| updateSelectInput(session, "response", | |
| choices = names(dt)) | |
| updateSelectInput(session, "familia") | |
| }) | |
| output$data_table <- renderTable({ | |
| inFile <- input$file1 | |
| if(is.null(inFile)) | |
| dt <- cars | |
| else dt <- read.csv(inFile$datapath, header=input$header, | |
| sep=input$sep) | |
| dt | |
| }) | |
| output$distPlot1 <- renderPlot({ | |
| four.hist(input$k, input$familia, input$response) | |
| }) | |
| output$distPlot2 <- renderPlot({ | |
| four.hist.qqplot(input$k, input$familia, input$response) | |
| }) | |
| output$downplot1 <- downloadHandler( | |
| filename = function() { | |
| paste("four_dist", input$type_plot, sep=".") | |
| }, | |
| # content is a function with argument file. content writes the plot to the device | |
| content = function(file) { | |
| if(input$type_plot == "png") | |
| png(file) # open the png device | |
| else | |
| pdf(file) # open the pdf device | |
| four.hist(input$k, input$familia, input$response) # draw the plot | |
| dev.off() # turn the device off | |
| } | |
| ) | |
| output$downplot2 <- downloadHandler( | |
| filename = function() { | |
| paste("four_dist", input$type_plot, sep=".") | |
| }, | |
| # content is a function with argument file. content writes the plot to the device | |
| content = function(file) { | |
| if(input$type_plot == "png") | |
| png(file) # open the png device | |
| else | |
| pdf(file) # open the pdf device | |
| four.hist.qqplot(input$k, input$familia, input$response) # draw the plot | |
| dev.off() # turn the device off | |
| } | |
| ) | |
| output$markdown <- renderUI({ | |
| HTML(markdown::markdownToHTML(knit('Teoria.Rmd', quiet = TRUE))) | |
| }) | |
| }) |