在执行以下 Shiny 代码时:
library("shiny")
library("ggplot2")
library("DT")
library("reshape2")
## load data ##
aqi = read.csv(file = "C:/Users/stan/Desktop/AIR/month.csv",
header = T, sep = ",")
str(aqi)
colnames(aqi) = c("num","month",
"PM10","PM2.5","NO","NO2")
## ui.R ##
ui = fluidPage(
titlePanel('AIR'),
sidebarLayout(
sidebarPanel(
selectInput('month',
'Choose a month:',
c('All', unique(as.character(aqi$month)
))),
selectInput('PM10',
'Number of :PM10',
c('All', unique(as.character(aqi$PM10)
))),
selectInput('PM2.5',
'Number of PM2.5:',
c('All',unique(as.character(aqi$PM2.5)
))),
selectizeInput("AIR",
"Select Contaminant:",
choices = c( "PM2.5",
"PM10"),
selected = "PM2..5",
multiple = TRUE )
),
mainPanel(
dataTableOutput('table'),
plotOutput("plot")
)
)
)
## server.R ##
server = function(input, output) {
# Filter data based on selections
output$table <- DT::renderDataTable(DT::datatable({
data <- aqi
if (input$month != "All") {
data <- data[aqi$month == input$month,]
}
if (input$PM10 != "All") {
data <- data[aqi$PM10 == input$PM10,]
}
data
if (input$PM2.5 != "All") {
data <- data[aqi$PM2.5 == input$PM2.5,]
}
data
}))
output$plot = renderPlot({
plot.data <- melt(aqi, id.vars= "month")
#not sure if input$cnt is a list or a vector
#may need to manipulate that before passing
plot.data <- plot.data[plot.data$variable %in% input$AIR, ]
ggplot(plot.data) +
geom_line(mapping = aes(x = month, y = value , colour =variable)) +
labs (x = "month", y = "value", title = "AIR") +
scale_colour_discrete(name = "AIR")
})
}
shinyApp(ui, server)
错误被抛出:
geom_path:每组仅包含一个观察值。需要调整群体审美吗?geom_path:每组仅包含一个观察值。需要调整群体审美吗?
我应该在美学上调整分组以避免上述错误吗?
这是我的数据:
1 num month PM 10 PM 2.5 NO NO2
2 1 1月 24 10 2.59 8.61
3 2 2月 45 20 2.14 9.94
4 3 3月 40 20 2.97 10.94
5 4 4月 51 20 2.16 11.27
6 5 5月 36 16 1.91 10.3
7 6 6月 33 13 1.89 8.85
8 7 7月 26 11 1.87 6.43
9 8 8月 28 13 2 9.4
10 9 9月 32 15 1.45 7.01
11 10 10月 35 15 1.26 7.77
12 11 11月 24 12 1.66 7.65
13 12 12月 21 11 2.06 8.22