2017-12-18 16 views
0

私はShinyの選択入力を持つ対話型ボックスプロットを開発しようとしてきました。Shinyを使用してボックスプロットをインタラクティブにする

現在のコード:

library(shiny) 

shinyUI(fluidPage(

    titlePanel("Sample 1"), 

    sidebarLayout(
    sidebarPanel(
     selectInput("p", "Choose your salaries", choices = c("low"='a',"mid"='b',"high"='c',"riches!"='d'), selected = 4) 
    ), 
    mainPanel(
     plotOutput("boxplot") 
    ) 
) 


)) 



library(shiny) 
read.csv("Salaries.csv") 

Categories <- cut (Salaries$TotalPay, breaks = c(0,36466,73678,104359,567595), labels = c("low","mid","high","riches!")) 

shinyServer(function(input, output){ 

    output$boxplot <- renderPlot({ 

    if(input$p=='a'){ 
     i<"1" 

    } 

    if(input$p=='b'){ 
     i<-"2" 
    } 

    if(input$p=='c'){ 
     i<-"3" 
    } 

    if(input$p=='d'){ 
     i<- "riches!" 
    } 


    boxplot(TotalPay~Categories[i]) 

    }) 
}) 

私はUIで行った選択に反応する箱ひげ図を得ることができません。私はそれが私が呼ぶときのようなレベルに関係してい疑う:

> Categories["riches!"] 
[1] <NA> 
Levels: low mid high riches! 

「 私はこれらに要因を追加する必要がありますか?または、私はそのポイントを完全に逃していますか? ありがとうございます!

+0

です。あなたのcsvファイルをデータフレームに割り当てていますか? 給与< - read.csv( "Salaries.csv") –

答えて

0

access the column by nameをご覧ください。以下の例はmtcarsデータセット

library(shiny) 

ui <- fluidPage(
    selectInput("p","p",choices = names(mtcars)), 
    plotOutput("myplot")) 

server <- function(input, output, session) { 

    output$myplot <- renderPlot({ 
    boxplot(mtcars[,input$p]) 
    }) 
} 

shinyApp(ui, server) 
+0

ありがとうございました。豚肉ありがとうございました。 – BadLuckNick

+0

こんにちは豚肉、 試してみてください:エラー$演算子は..アトミックベクトルは無効です ' (光沢) read.csv( "Salaries.csv") カテゴリー<ライブラリ - カット(給与$ TotalPay、休憩= C(0,36466,73678,104359 、567595)、ラベル= C( "低"、 "中"、 "高"、 "富!")) shinyServer(機能(入力、出力){ 出力$箱ひげ図< - ({ renderPlot 箱ひげ図(TotalPay [、カテゴリー$ P]) }) }) ' – BadLuckNick

+0

U uは' "カテゴリーの$ P" 'と呼ばれる何の列を持っていないので、あなたのサブセットが' "低" のようなものである必要がエラーを取得'または' 'mid" 'を使用することができます。 「>名前(給与) [1] "ID" "EmployeeName" "JobTitle" "BasePay" "OvertimePay" [6] "OtherPay" "利点"「TotalPay: –

関連する問題