Я новичок в R и Shiny, и я пытаюсь создать интерактивный сюжет с ggplot2.Когда пользователь установит флажок, он получит доступ к полю множественного выбора для настройки графика.
Исходный кадр данных содержит пропущенные значения, обозначенные как "N/A"
в столбцах Publisher
и Year
.Я удалил строки, содержащие NA, с помощью complete.cases
, поэтому на нем не должно быть никаких NA.
Я запускаю свое приложение: ОК.Я получаю по умолчанию сюжет: ОК.Я отмечаю флажок: Warning: Factor 'Publisher' contains implicit NA, consider using 'forcats::fct_explicit_na'
Я хотел бы удалить это предупреждение, по крайней мере, понять его.Если у вас есть дополнительные комментарии, пожалуйста, сделайте так: моя цель - стать лучше.
app.R:
df<-read.csv("vgsales.csv")
df$Year[df$Year=="N/A"]<-NA
df$Year<-factor(df$Year)
df$Publisher[df$Publisher=="N/A"]<-NA
df$Publisher<-factor(df$Publisher)
df<-df[complete.cases(df),]
pubSales<-na.omit(df
%>% group_by(Publisher, Year)
%>% summarise(Global_Sales=sum(Global_Sales))
)
pubSales<-pubSales[order(pubSales$Year),]
top5Pub<-head(unique(pubSales[order(-pubSales$Global_Sales),]$Publisher),5)
ui <- navbarPage("Video Games Sales",
tabPanel("Publishers",
mainPanel(
titlePanel(
title = "Publishers sales"
),
sidebarPanel(
radioButtons(
"pubOptions",
"Options",
c("Top 5 Publishers"="topFivePub",
"Custom Publishers"="customPub"),
selected="topFivePub"
),
uiOutput("customPubUI")
),
mainPanel(
plotOutput("pubPlot")
),
width=12
)
)
)
server <- function(input, output, session) {
output$customPubUI<-renderUI({
if(input$pubOptions=="customPub"){
selectInput(
"selectedPub",
"Editeurs",
pubSales$Publisher,
multiple=TRUE
)
}
})
output$pubSales<-renderTable(pubSales)
output$pubPlot<-renderPlot({
ggplot()+
if(input$pubOptions=="customPub"){
geom_line(
data=pubSales[pubSales$Publisher %in% input$selectedPub,],
aes(x=Year,y=Global_Sales,colour=Publisher,group=Publisher)
)
}else{
geom_line(
data=pubSales[pubSales$Publisher %in% top5Pub,],
aes(x=Year,y=Global_Sales,colour=Publisher,group=Publisher)
)
}
})
}
shinyApp(ui, server)