5

ピカピカの初心者です。

私は R 光沢のあるスクリプトを作成しようとしています。私がやりたいことの 1 つは、特定の日と特定の広告主のさまざまな地域での広告ビュー数のヒストグラムを生成することです。

私のテーブルには次の列があります(サンプルデータ付き):

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.

UIタブでの私の望ましい出力は、ggplotでこのようなものです

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

そして、このように見えるはずです

ここに画像の説明を入力

ただし、エラーが発生します

Error: object 'DMA' not found

基本的に同じ式をR Shinyに貼り付けているとき。私のコードは次のとおりです

サーバー.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 は、print() ステートメントをラップすることで機能するようになりました。ただし、変数が見つからないという新たな問題が発生します。

4

2 に答える 2

10

df2データではなく、リアクティブ関数です。で使用df2()ggplot、上記のように印刷することを忘れないでください。

このようなことが起こった場合、「DMA がある」と仮定せずprint(str(df2))に、重要なポイントに a を挿入します。

于 2013-04-03T15:18:56.210 に答える
5

ggplot オブジェクトを print() でラップしてみてください

于 2013-04-03T14:55:32.937 に答える