2013-04-03 24 views
5

क्यों चमकदार नौसिखिया विफल रहा है।आर चमकदार: सुनिश्चित नहीं है कि ggplot

मैं एक आर चमकदार लिपि लिखने की कोशिश कर रहा हूं, और एक चीज जो मैं करना चाहता हूं वह किसी दिए गए दिन के लिए विज्ञापन दृश्यों की संख्या और विभिन्न क्षेत्रों में दिए गए विज्ञापनदाता की हिस्टोग्राम उत्पन्न करती है।

मेरे तालिका है निम्न स्तंभ (नमूना डेटा के साथ) है:

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. 

यूआई टैब पर मेरे वांछित आउटपुट ggplot

ggplot(df2, aes(x=DMA, y=Impressions, fill=DMA)) +geom_histogram() 

साथ कुछ इस तरह है और होना चाहिए इस

तरह लग रहा है

enter image description here

हालांकि, मुझे एक त्रुटि मिल रही है

Error: object 'DMA' not found 

जब मैं मूल रूप से आर चमकदार में एक ही सूत्र चिपकाने कर रहा हूँ। मेरे कोड के रूप में टैब को शामिल करते

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 
)) 

बाकी सब कुछ काम करता है, इस प्रकार है। लेकिन यह साजिश दिखाई नहीं दे रही है।

अद्यतन: धन्यवाद, GGplot अब इसके आसपास प्रिंट() कथन लपेटकर काम करता है। हालांकि, एक नया मुद्दा उत्पन्न होता है जहां एक चर नहीं मिल सकता है।

+5

क्या आप कह रहे हैं कि साजिश सामान्य रूप से काम करती है, लेकिन जब चमकदार नहीं होती है? अपनी साजिश को 'प्रिंट()' में डालने का प्रयास करें। उदा। 'पी <- ggplot (...) + geom_histogram (...); प्रिंट (पी) '। – MadScone

+0

धन्यवाद। ggplot अब काम करता है, लेकिन "ऑब्जेक्ट डीएमए नहीं मिला" के कारण यह प्लॉट नहीं कर रहा है –

+1

क्या 'डीएमए' निश्चित रूप से 'df2' में एक कॉलम है? – MadScone

उत्तर

8

df2, डेटा नहीं है, लेकिन एक प्रतिक्रियाशील समारोह के साथ ggplot वस्तु लपेटकर कोशिश करो। df2() का उपयोग ggplot में करें, और ऊपर बताए अनुसार प्रिंट करना न भूलें।

यदि ऐसी चीजें होती हैं, तो ऐसा न मानें कि "डीएमए वहां है", लेकिन महत्वपूर्ण बिंदु पर print(str(df2)) डालें।

+0

धन्यवाद, जिसने इसे हल किया। यह अभी भी मेरे लिए सहज नहीं है कि डीएफ अब एक प्रतिक्रियाशील कार्य का प्रतिनिधित्व करता है, इसमें उपयोग करने में कुछ समय लगेगा –

5

प्रिंट()

+0

धन्यवाद लेकिन कृपया मेरी नई समस्या को भी देखें –

+0

प्रिंट() पहेली में मेरा लापता टुकड़ा था! – Raffael

संबंधित मुद्दे