2013-11-15 3 views
3

Shiny를 처음 접하고 내가 만든 함수에 대해보다 접근하기 쉬운 입력과 출력을 만들기 위해 노력하고 있습니다. 나는 R을 실행하지 않는 사람들에게이 기능을 제공하여 백그라운드에서 내 기능을 실행하는 무언가를 만들고 나서 대답을 뱉어 낸다.Shiny - 텍스트를 보조 함수로 입력

불행히도 오류를 많이 내고 모든 것을 처리하는 데 어려움을 겪고 있습니다. 그러나 여기에 더 자세한 질문이 있습니다.

실행하려는 실제 기능에는 이름 ("Last, First"로 인용)과 숫자가 필요합니다.

PredH("Last,First",650) 

그래서 나는 이름을 입력 한 다음이 프로그램을 실행 숫자 입력을 받아 다음 내 대답에 데이터 테이블에서 다시 뱉어 빛나는 응용 프로그램을 원한다. 그래서 몇 가지 질문이 있습니다.

서버 측 스크립트에서 내 방정식을 입력하기 위해 올바른 형식으로 어떻게 가져올 수 있습니까? 함수 $ 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) 


}) 

답변

3

나는 당신의 질문을 100 % 이해했다고 확신하지는 않지만, 나는 분명히 당신이 UI의 입력을 서버에 전달하는 방법을 궁금해하고 있으며 다른 방법으로 되돌아 갈 수 있습니다.

서버 코드에서 명확하게 사용자 인터페이스에서 어떤 입력도 얻지 못하고 있습니다. 기본적으로 당신은 당신의 ui.R에 3 개 개의 입력 변수를 만들었습니다

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

그리고 하나 개의 출력 :

1. output$name 

그냥 알려 함수 sliderValues <- reactive(..)은 입력에서 어떤 입력이 때마다 호출됩니다 .. 사람들이 드롭 다운 목록을 클릭하거나 사람들이 텍스트 상자에서 단어를 수정합니다. 시작하기 만하면 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") 
) 
)) 

을 당신이 원하는 것을 할 수있는 빛나는 예를 체크 아웃 : 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.

그래서 당신은이 같은 유사한 방식으로 코드를 넣을 수 있습니다.

library(shiny) 
runExample('07_widgets') 
+0

답장을 보내 주셔서 감사합니다. 빠른 질문. 이러한 입력을 서버 측에 살고있는 다른 함수에 전달하려고합니다.내 기능이 다음과 같다고 가정 해 보겠습니다. – BaseballR

+0

name = input [1,2] PAIP = 입력 [2,2] 테스트 BaseballR

+0

나는 이런 종류의 일을하고 타입 클로저의 객체는 항상 서브 세트가 아니기 때문에 돌아오고 나는이 질문에 대한 답변을 반짝 반짝 빛나는 것에 대해서는 찾을 수 없다. – BaseballR

관련 문제