-
Notifications
You must be signed in to change notification settings - Fork 0
/
server code.R
67 lines (55 loc) · 2.5 KB
/
server code.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
server <- function(input, output) {
selectedData <- reactive({imdb.random[(imdb.random$Genre %in% input$input.g) &
(imdb.random$Rating >= input$input.r[1]) &
(imdb.random$Rating <= input$input.r[2]) ,
]
})
output$myPlot <- renderPlotly({
plot_ly(data=selectedData(), x = ~ get(input$input.x), y= ~ get(input$input.y),
color= ~ Genre, colors = "BrBG" ,
text= ~ Title ,
type = ifelse(input$input.x=="Genre","box","scatter")) %>%
layout( xaxis = list(title = input$input.x) , yaxis = list(title = input$input.y))
})
# output$myPlot <- renderPlot({
# selectedData() %>% ggplot(aes(x =get(input$input.x), y= get(input$input.y), colour = Genre)) +
# labs(x=input$input.x,y=input$input.y ) +
# scale_colour_brewer(palette ="BrBG") +
# theme_minimal()+
# if(input$input.x=="Genre"){geom_boxplot()} else {geom_point()}
# })
output$myTable <- renderDT({
if(input$input.x != "Genre"){
selectedData() %>% group_by(Genre) %>%
summarize(X = round(mean(get(input$input.x),na.rm=T),2),
Y = round(mean(get(input$input.y),na.rm=T),2)
) %>% datatable(colnames=c("Genre", input$input.x, input$input.y))
} else {
selectedData() %>% group_by(Genre) %>%
summarize( Y = round(mean(get(input$input.y),na.rm=T),2)
) %>% datatable(colnames=c("Genre", input$input.y))
}
})
observeEvent(input$random, {
output$myText <- renderText({ movie= selectedData()
movie= subset(movie,!is.na(Title) & !is.na(Year))
if(nrow(movie)!=0) {
movie.sel=movie[sample.int(nrow(movie),1),]
paste0("You should watch:\n\n",movie.sel$Title, " (",movie.sel$Year,")")
} else {"No match!"}
})
output$myHTML <- renderUI({ movie= selectedData()
movie= subset(movie,!is.na(Title) & !is.na(Year))
if(nrow(movie)!=0) {
movie.sel=movie[sample.int(nrow(movie),1),]
h4("You should watch:\n\n",
a(paste0(movie.sel$Title, " (",movie.sel$Year,")"),
href = paste0("https://www.imdb.com/title/",movie.sel$tconst) ,
target="_blank" , rel="noopener noreferrer"
)
)
} else { h4("No match!") }
})
})
}
shinyApp(ui, server)