-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.R
123 lines (107 loc) · 4.25 KB
/
app.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# devtools::load_all()
load("data/qualiscapes.rda")
library(DT)
library(shiny)
library(shinythemes)
library(shinyWidgets)
library(shinydashboard)
library(magrittr, include.only = "%>%")
da_qualis <- qualiscapes %>%
dplyr::rename(issn = ISSN_2019,
titulo = TITULO_2019,
estrato = ESTRATO_2019)
ui <- fluidPage(theme = shinytheme("cerulean"),
titlePanel(
fluidRow(
column(9, "Pesquisa de Periódicos"),
column(3, actionButton("github",
label = "Código",
icon = icon("github"),
width = "100px",
onclick ="window.open(`https://github.com/beatrizmilz/QualisCAPES/blob/master/app.R`, '_blank')",
style="float:right"))
),
windowTitle = "Pesquisa de Periódicos"
),
hr(),
sidebarPanel(
shinyjs::useShinyjs(),
div(
id = "form",
selectizeInput(
inputId = "issn_i",
label = "Selecione e/ou digite o(s) número(s) de ISSN",
# choices = sort(unique(da_qualis$issn)),
choices = NULL,
multiple = TRUE,
selected = FALSE
),
#
selectizeInput(
inputId = "titulo_i",
label = "Selecione e/ou digite o(s) Título(s) do(s) Períodico(s)",
# choices = sort(unique(da_qualis$titulo)),
choices = NULL,
multiple = TRUE,
selected = FALSE
),
#
sliderTextInput(
inputId = "estrato_i",
label = "Escolha a classificação no Periódicos CAPES",
choices = sort(unique(da_qualis$estrato)),
selected = c("A1", "NP"),
grid = TRUE
)
),
actionButton("resetAll", "Limpar entradas")
),
mainPanel(
# Adiciona a tabela
h3("Qualis CAPES 2019"),
DTOutput("tabela_periodicos"),
hr(),
p(br("Desenvolvido por",
tags$a(href = "https://ramongss.github.io", "Ramon G. da Silva"),
"usando o pacote",
tags$a(href = "https://github.com/ramongss/qualiscapes", "{qualiscapes},"),
"RStudio e Shiny App."),
style="text-align:center")
)
)
server <- function(input, output,session) {
filtered_data <- reactive({
da_qualis2 <- da_qualis %>%
{if (!is.null(input$issn_i)) dplyr::filter(da_qualis, issn %in% input$issn_i) else .} %>%
{if (!is.null(input$titulo_i)) dplyr::filter(da_qualis, titulo %in% input$titulo_i) else .} %>%
dplyr::filter(as.character(estrato) >= as.character(input$estrato_i[1]),
as.character(estrato) <= as.character(input$estrato_i[2])) %>%
dplyr::arrange(estrato)
da_qualis2
})
output$tabela_periodicos <- renderDT({
filtered_data() %>%
dplyr::rename(ISSN = issn,
`Título do Periódico` = titulo,
`Estrato CAPES` = estrato
)
} , escape = FALSE)
updateSelectizeInput(
inputId = "issn_i",
label = "Selecione e/ou digite o(s) número(s) de ISSN",
choices = sort(unique(da_qualis$issn)),
server = TRUE
)
updateSelectizeInput(
inputId = "titulo_i",
label = "Selecione e/ou digite o(s) Título(s) do(s) Períodico(s)",
choices = sort(unique(da_qualis$titulo)),
server = TRUE
)
observeEvent(input$resetAll, {
shinyjs::reset("form")
updateSliderTextInput(session, 'estrato_i', selected = c("A1", "NP"))
}
)
}
shinyApp(ui, server)