2015-02-22 2 views
0

К сожалению я перепроведение этого вопроса, потому что модератор не вынимая держание этих вопросов, размещенных ранее (https://stackoverflow.com/questions/28643738/r-shiny-user-input-text-box-and-button) Я пытаюсь написать скрипт в г блестящим такие, чтог блестящих отображений определенных строк из набора данных

Step 1) Accept input from the user 
Step 2) Check if that value exist in the dataset (iris) 
Step 3) if that value exists then display that value and another value from a different column associated with that value. 

Например, рассматривая радужной оболочки DataSet

головки (РОГ)

 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
     5.1   3.5   1.4   0.2 setosa 
     4.9   3.0   1.4   0.2 setosa 
     4.7   3.2   1.3   0.2 setosa 
     4.6   3.1   1.5   0.2 setosa 
     5.0   3.6   1.4   0.2 setosa 
     5.4   3.9   1.7   0.4 setosa 

пользовательского ввода это значение (5.1), ш iny проверяет, существует ли это значение в столбце Sepal.Length, если оно существует, тогда отобразите это значение (5.1) и соответствующее значение вида (Setosa). Если это значение не существует, то блестящие дисплеи не будут найдены.

Это то, что я сделал до сих пор. Нужны некоторые указатели.

UI.r

shinyUI(fluidPage(
    titlePanel("Test Case"), 
    sidebarLayout(
     sidebarPanel((""), 
      textInput("mrnnumb", "Enter Sepal Length",""), 
      submitButton("Ok")), 
        mainPanel(("Results"), 
      textOutput("yn")) 
    ) 

    )) 

server.r

data(iris) 

library(shiny) 

shinyServer(
    function(input, output, session) 
    { 

    output$yn = reactive({ifelse((input$mrnnumb) %in% iris$Sepal.Length, "Found","Not Found") }) 
     } 
    ) 

ответ

1

Это делает:

вам нужно добавить еще один textOutput в пользовательском интерфейсе, а затем получить реактивный сервер, чтобы вы доступ к нему.

library(shiny) 

ui <- fluidPage(
    titlePanel("Test Case"), 
    sidebarLayout(
    sidebarPanel((""), 
       textInput("mrnnumb", "Enter Sepal Length",""), 
       submitButton("Ok")), 
    mainPanel(("Results"), 
       textOutput("yn"), 
       textOutput("species")) 
) 

) 




server <- function(input, output) { 

    data(iris) 

    output$yn = reactive({ifelse((input$mrnnumb) %in% iris$Sepal.Length, "Found","Not Found")}) 

    output$species = reactive({ 

     n <- input$mrnnumb 
     myspecies <- iris[(iris$Sepal.Length == n),5] 
     return(myspecies) 
    }) 

    } 


shinyApp(ui = ui, server = server) #this runs the app 

это дает:

enter image description here

При входе 5.1 есть несколько вариантов - и все возвращаются.

+0

именно то, что я искал –