4

私は Shiny を初めて使用し、作成した関数のよりアクセスしやすい入力と出力を作成しようとしています。私はこれをRを実行していない人に提供しているので、バックグラウンドで私の機能を実行してから答えを吐き出すものを構築しようとしています.

残念ながら、すべてを希望どおりに取得できず、多くのエラーに対処するのに苦労しています。ただし、ここに私のより鋭い質問があります:

実行したい実際の関数は、名前 ("Last,First" のように引用符で囲む) と番号を取ります。

PredH("Last,First",650)

だから私は、名前の入力と数値の入力を受け取り、このプログラムを実行してから、答えを含むデータテーブルを吐き出す光沢のあるアプリケーションが必要です。いくつか質問があります。

サーバーサイドスクリプトで数式に入力する正しい形式で取得するにはどうすればよいですか? function$table タイプのアクセスを使用してアクセスできるように、関数で返す必要がありますか? (現在、関数のコンソールで cat() 関数を使用して印刷していますが、このタイプのアプリケーションでは使用できない可能性があることを知っています。

PredH14$tableで取得できるデータフレームを返したい。その光沢のあるものを構築するにはどうすればよいですか?

これまでの私のコードは次のとおりです。

UI:

library(shiny)


shinyUI(pageWithSidebar(

  # Application title
  headerPanel("Miles Per Gallon"),

  # Sidebar with controls to select the variable to plot against mpg
  # and to specify whether outliers should be included
  sidebarPanel(
    textInput("playername", "Player Name (Last,First):", "Patch,Trevor"),
   radioButtons("type", "Type:",
                 list("Pitcher" = "P",
                      "Hitter" = "H"
                      )),

    numericInput("PAIP", "PA/IP:", 550),
    submitButton("Run Comparables")


  ),
    mainPanel(
    textOutput("name")
        )

サーバ:

library(shiny)

shinyServer(function(input, output) {

sliderValues <- reactive({


    data.frame(
      Name = c("name", "PA"),

        Value = c(as.character(playername),
                  PAIP),

        stringsAsFactors=FALSE)
  })

name=input[1,2] 
PAIP=input[2,2] 
testing <- function(name,PAIP){ 
a=paste(name,PAIP) 
return(a) }
output$name=renderText(testing$a)


})
4

1 に答える 1

4

あなたの質問を 100% 理解したかどうかはよくわかりませんが、UI の入力をサーバーに渡す方法を疑問に思っていることは明らかです。

サーバー コードでは、明らかに UI からの入力を取得していません。基本的に、次の 3 つの入力変数を に作成しましたui.R

1. input$playername
2. input$type 
3. input$PAIP

そして1つの出力:

1. output$name

sliderValues <- reactive(..)入力からの入力があるたびに関数が呼び出されることをお知らせください...人々がドロップダウンリストをクリックしたり、テキストボックス内の単語を変更したりするように。始めるだけでなくても始めることができますsubmit button。しかし、実際には送信ボタンの存在により、すべてが簡単になります。Create a submit button for an input form. Forms that include a submit button do not automatically update their outputs when inputs change, rather they wait until the user explicitly clicks the submit button.

したがって、次のような方法でコードを配置できます。

# server.R
library(shiny)
shinyServer(function(input, output) {

  sliderValues <- reactive({
      result <- ... input$playername ... input$type ... input$PAIP
      return(result)
  })

  output$name <- renderPlot/renderText (... sliderValues...)
})

# ui.R
library(shiny)

shinyUI(pageWithSidebar(

  headerPanel("Miles Per Gallon"),

  sidebarPanel(
    textInput("playername" ... ),
    radioButtons("type" ... ),
    numericInput("PAIP" ... ), 
    submitButton("...")
  ),

  mainPanel(
    textOutput/plotOutput...("name")
  )
 ))

最後に、あなたが望むかもしれない輝かしい例をチェックしてください。

library(shiny)
runExample('07_widgets')
于 2013-11-15T00:38:21.410 に答える