I would like subset of data containing rows about the country to appear in table form on clicking a country on the map
Mapbox_Token= 'Mapbox token'
library(plotly)
library("readxl")
library(dplyr)
library(readxl)
library(writexl)
library(shiny)
library(htmlwidgets)
data_1<- read.csv(".file.csv")
print(data_1)
library(formattable)
data1<- data_1[data_1$Country=='USA',]
data1<- data1[c('Country','Name')]
print(data1)
data2<- data_1[data_1$Country=='FRANCE',]
data2<- data2[c('Country','Name')]
data3<- data_1[data_1$Country=='AZORES',]
data3<- data3[c('Country','Name')]
data4<- data_1[data_1$Country=='AFGANISTAN',]
data4<- data4[c('Country','Name')]
data5<- data_1[data_1$Country=='ALBANIA',]
data5<- data5[c('Country','Name')]
data6<- data_1[data_1$Country=='ALGERIA',]
data6<- data6[c('Country','Name')]
data7<- data_1[data_1$Country=='ANGOLA',]
data7<- data7[c('Country','Name')]
data8<- data_1[data_1$Country=='ARGENTINA',]
data8<- data8[c('Country','Name')]
print(data8)
data9<- data_1[data_1$Country=='ARMENIA',]
data9<- data9[c('Country','Name')]
data10<- data_1[data_1$Country=='AUSTRALIA',]
data10<- data10[c('Country','Name')]
data11<- data_1[data_1$Country=='AUSTRIA',]
data11<- data11[c('Country','Name')]
data12<- data_1[data_1$Country=='AZERBAIJAN',]
data12<- data12[c('Country','Name')]
data13<- data_1[data_1$Country=='BAHAMAS',]
data13<- data13[c('Country','Name')]
data14<- data_1[data_1$Country=='BAHRAIN',]
data14<- data14[c('Country','Name')]
data15<- data_1[data_1$Country=='BANGLADESH',]
data15<- data15[c('Country','Name')]
data16<- data_1[data_1$Country=='BELARUS',]
data16<- data16[c('Country','Name')]
data17<- data_1[data_1$Country=='BELGIUM',]
data17<- data17[c('Country','Name')]
data18<- data_1[data_1$Country=='BENIN',]
data18<- data18[c('Country','Name')]
data19<- data_1[data_1$Country=='BERMUDA',]
data19<- data19[c('Country','Name')]
data20<- data_1[data_1$Country=='BHUTAN',]
data20<- data20[c('Country','Name')]
data21<- data_1[data_1$Country=='BOLIVIA',]
data21<- data21[c('Country','Name')]
data22<- data_1[data_1$Country=='BOSNIA AND HERZEGOVINA',]
data22<- data22[c('Country','Name')]
data23<- data_1[data_1$Country=='BRAZIL',]
data23<- data23[c('Country','Name')]
data24<- data_1[data_1$Country=='BRUNEI',]
data24<- data24[c('Country','Name')]
data25<- data_1[data_1$Country=='BULGARIA',]
data25<- data25[c('Country','Name')]
data26<- data_1[data_1$Country=='BURKINA FASO',]
data26<- data26[c('Country','Name')]
data27<- data_1[data_1$Country=='BURUNDI',]
data27<- data27[c('Country','Name')]
data28<- data_1[data_1$Country=='CAMBODIA',]
data28<- data28[c('Country','Name')]
data29<- data_1[data_1$Country=='CAMEROON',]
data29<- data29[c('Country','Name')]
data30<- data_1[data_1$Country=='CANADA',]
data30<- data30[c('Country','Name')]
data31<- data_1[data_1$Country=='CANARY ISLAND',]
data31<- data31[c('Country','Name')]
data32<- data_1[data_1$Country=='CHAD',]
data32<- data32[c('Country','Name')]
data33<- data_1[data_1$Country=='CHILE',]
data33<- data33[c('Country','Name')]
data34<- data_1[data_1$Country=='CHINA',]
data34<- data34[c('Country','Name')]
data35<- data_1[data_1$Country=='COLOMBIA',]
data35<- data35[c('Country','Name')]
data36<- data_1[data_1$Country=='CONGO',]
data36<- data36[c('Country','Name')]
data37<- data_1[data_1$Country=='COSTA RICA',]
data37<- data37[c('Country','Name')]
data38<- data_1[data_1$Country=='CROATIA',]
data38<- data38[c('Country','Name')]
Sys.setenv("MAPBOX_TOKEN" = Mapbox_Token) # for Orca
ui <- fluidPage(
selectInput("var","Variable:",choices=c("Select","USA","FRANCE","AZORES","AFGANISTAN","ALBANIA","AL GERIA","ANGOLA","ARGENTINA","ARMENIA","AUSTRALIA","AUSTRIA ","AZERBAIJAN","BAHAMAS",
"BAHRAIN","BANGLADESH","BELARUS","BELGIUM","BENIN","BERMUDA","BHUTAN","BOLIVIA","BOSNIA AND HERZEGOVINA","BRAZIL","BRUNEI","BULGARIA","BURKINA FASO",
"BURUNDI","CAMBODIA","CAMEROON","CANADA","CANARY ISLAND","CHAD","CHILE","CHINA","COLOMBIA","CONGO","COSTA RICA","CROATIA")),
dataTableOutput("data"),
plotlyOutput(outputId = "Plot"),
DT::dataTableOutput('click')
)
server <- function(input, output,session) {
varinput<- reactive({
switch(input$var,
"USA"=data1,
"FRANCE"=data2,
"AZORES"=data3,
"AFGANISTAN"=data4,
"ALBANIA"=data5,
"ALGERIA"=data6,
"ANGOLA"=data7,
"ARGENTINA"=data8,
"ARMENIA"=data9,
"AUSTRALIA"=data10,
"AUSTRIA"=data11,
"AZERBAIJAN"=data12,
"BAHAMAS"=data13,
"BAHRAIN"=data14,
"BANGLADESH"=data15,
"BELARUS"=data16,
"BELGIUM"=data17,
"BENIN"=data18,
"BERMUDA"=data19,
"BHUTAN"=data20,
"BOLIVIA"=data21,
"BOSNIA AND HERZEGOVINA"=data22,
"BRAZIL"=data23,
"BRUNEI"=data24,
"BULGARIA"=data25,
"BURKINA FASO"=data26,
"BURUNDI"=data27,
"CAMBODIA"=data28,
"CAMEROON"=data29,
"CANADA"=data30,
"CANARY ISLAND"=data31,
"CHAD"=data32,
"CHILE"=data33,
"CHINA"=data34,
"COLOMBIA"=data35,
"CONGO"=data36,
"COSTA RICA"=data37,
"CROATIA"=data38)
})
output$data<- renderDataTable({
data2<- varinput()
})
output$Plot <- renderPlotly({
df=read.csv("C:/Users/user/Downloads/Cinando_Countries.csv")
render_value(data_1)
fig <- df%>% plot_mapbox(lat = ~lat, lon = ~lng,split = ~Country,
size=0, type= 'scattermapbox',mode='markers',hoverinfo="none",showlegend=F,source='subset'
) #text= ~paste(paste('Country:',Country1),paste('Revenue:
$',comma(totalGross,digits = 1)), paste("Number of
movies:",ProductionCo1), sep = "<br />"), hoverinfo =
"text",showlegend=F)
fig <- fig %>% layout(title = 'Number Of Companies in Cinando',font
= list(color='white'),plot_bgcolor = '#191A1A', paper_bgcolor =
'#191A1A',mapbox = list(style = 'dark'),legend = list(orientation ='v',font = list(size = 6)),margin = list(l = 25, r = 25,b = 75, t = 25,pad =
2))#annotations=list(text='Map shows Revenue generated by
production companies by country \n and number of movies which
generated over 100 million dollars in
2018',showarrow=F,x=0.5,y=0,xref='paper',yref='paper'))
fig<-fig %>% add_annotations(text ='Map shows number of
companies in Cinando by country. The size of the circles correspond to
the number of
companies.',x=0.5,y=-0.2,showarrow=FALSE,font=list(color='red'))
fig<- fig %>% add_markers(text = ~paste(paste('Country:',Country),
paste("Number of Companies:",Name ), paste("Dataset:", Url),sep = "
<br />"), size=~Name, hoverinfo = "text",marker=list(sizeref=0.1,
sizemode="area"),showlegend=T)%>%
onRender(
fig, "function(el) {el.on('plotly_click', function(d) {var
url = d.points[0].customdata;window.open(url);});}")
fig <- fig %>% config(mapboxAccessToken =
Sys.getenv("MAPBOX_TOKEN"))
})
render_value=function(df){
output$click <- renderDataTable({
s <- event_data("plotly_click",source = "subset")
print(s$y)
return(DT::datatable(data_1[data_1$Country==s$y,]))
})
}
}
shinyApp(ui,server)