Nuovo principiante qui.R Shiny: non sono sicuro del motivo per cui ggplot non funziona
Sto provando a scrivere uno script R lucido, e una delle cose che voglio fare è generare un istogramma del numero di visualizzazioni di annunci per un dato giorno e un determinato inserzionista in diverse regioni.
Il mio tavolo è ha le seguenti colonne (con dati di esempio):
Date Impressions Advertiser Factor 1 DMA
2/19 22789 McDonalds Cheap Los Angeles
2/17 15002 Regal Cinem Luxury New York
2/20 12345 McDonalds Cheap D.C.
mio output desiderato sulla scheda interfaccia utente è qualcosa di simile con ggplot
ggplot(df2, aes(x=DMA, y=Impressions, fill=DMA)) +geom_histogram()
e dovrebbe apparire come questo
Tuttavia, sto ottenendo un errore
Error: object 'DMA' not found
quando sto praticamente incollando la stessa formula in R Shiny. Il mio codice è il seguente
server.R
library(shiny)
library(ggplot2)
df<- na.omit(read.csv("data.csv", fill= TRUE, nrows= 3000000))
shinyServer(function(input, output){
df2<- reactive({df[df$Date==input$date & df$Advertiser==input$name, ]})
#FIXME why is this plot not printing
output$plot1<- renderPlot({
print(ggplot(df2, aes(x=DMA, y=Impressions, fill=DMA)) +geom_histogram())
})
#end of server brackets
})
ui.R
library(shiny)
df<- na.omit(read.csv("data.csv", fill= TRUE, nrows= 3000000))
daterange<- unique(df$Date)
names <- unique(df$Advertiser)
shinyUI(pageWithSidebar(
#Title of Application
headerPanel("Advertisement"),
sidebarPanel(
selectInput("date", "Date:",
choices= daterange),
selectInput("name", "Partner",
choices= names)
),
mainPanel(
tabsetPanel(
tabPanel("Plot1", plotOutput("plot1"))
)
)
#end of UI brackets
))
tutto il resto funziona, tra cui le schede. Ma questa trama non viene mostrata.
AGGIORNAMENTO: GRAZIE, GGplot ora funziona avvolgendo l'istruzione print() attorno ad esso. Tuttavia, sorge un nuovo problema in cui una variabile non può essere trovata.
Stai dicendo che la trama funziona normalmente, ma non quando in Shiny? Prova a inserire la trama in 'print()' ad es. 'p <- ggplot (...) + geom_histogram (...); stampa (p) '. – MadScone
grazie. ggplot funziona ora, ma non è il tracciamento a causa di "Oggetto DMA non trovato" –
'DMA' è sicuramente una colonna in' df2'? – MadScone