Shiny Neuling hier.R Shiny: nicht sicher, warum ggplot versagt
Ich versuche, ein R glänzend Skript zu schreiben, und eines der Dinge, die ich tun möchte, ist ein Histogramm der Anzahl der Anzeigenansichten für einen bestimmten Tag und einen bestimmten Werbetreibenden über verschiedene Regionen.
Mein Tisch ist, hat die folgenden Spalten (mit Beispieldaten):
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.
Meine gewünschte Ausgabe auf dem UI-Register ist so etwas wie dies mit ggplot
ggplot(df2, aes(x=DMA, y=Impressions, fill=DMA)) +geom_histogram()
und sollte wie folgt aussieht
Allerdings bekomme ich einen Fehler
Error: object 'DMA' not found
Wenn ich im Grunde die gleiche Formel in R Shiny einfügen. Mein Code ist wie folgt
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
))
Alles andere Arbeiten, einschließlich der Registerkarten. Aber diese Handlung wird nicht angezeigt.
AKTUALISIERUNG: DANKE, GGplot funktioniert jetzt, indem es die Anweisung print() umschließt. Es tritt jedoch ein neues Problem auf, wenn eine Variable nicht gefunden werden kann.
Willst du sagen, dass die Handlung normal funktioniert, aber nicht in Shiny? Versuchen Sie, Ihre Zeichnung in 'print()' zu schreiben, z. 'p <- ggplot (...) + geom_histogram (...); drucken (p) '. – MadScone
danke. ggplot funktioniert jetzt, aber es zeichnet nicht wegen "Objekt DMA nicht gefunden" –
Ist 'DMA' definitiv eine Spalte in' df2'? – MadScone