2017-10-13 19 views
0

3,2,1または3,1,2などのユーザからの文字列を取得したい場合は、この情報を使用して順序変数。ここに私のコードはありますが、動作しません。Rからユーザへの順序変数の取得方法Shiny

server.R:

function(input, output, session) { 
    eventReactive(input$run_ord, { 
     order=c(input$correct_order) 
    }) 

    output$ntext <- renderText({ 
     print(str(order())) 
    }) 
} 

ui.R:

fluidPage(theme = shinytheme("spacelab"), 
    navbarPage(("Structure"), id = "allResults", 

     tabPanel(value='set_ord', title = 'Ordinality', 
       sidebarLayout(
        sidebarPanel(
         h5("Specify the correct order below"), 
         #price_tiers_new : Mainstream ; Premium ; Super Premium ; Value ; 
         textInput("correct_order", "","4,1,2,3"), 

         actionButton("run_ord", "Run!"), 
         width = 3 
        ), 

        mainPanel(
        verbatimTextOutput("ntext") 
        ) 
    ) 
) 
) 
) 

アイデアがある:ユーザーが3,1,2と入力した場合、私は順序でこれを使用します= C(3、 1,2)を並べ替えを行う関数に置き換えます。

ご了承ください。ありがとうございました!

+1

問題は、文字列として順番に帰しているということですが、数値として入力を持っていると思います。カンマで区切って数値に変換するには、 'str_split(" 4,1,2,3 "、"、 "、simplify = T)%>%as.numeric()パッケージには他の基本的なRの方法があります。 –

答えて

0

@Micael Bird alreayはそれをすべて言った。あなたは何とか文字列を数値ベクトルに変換する必要があります。以下はstringiパッケージのstrsplit機能を使用したソリューションです。

二つの簡単なメモ

  • orderèventReactiveの戻り値でなければなりません。
  • 文字列に強制できない出力を表示する場合は、renderTextではなくrenderPrintを使用してください。

Serverコード:

library(dplyr) 
library(stringi) 

function(input, output, session) { 
    order = eventReactive(input$run_ord, { 
    strsplit(input$correct_order,",") %>% unlist %>% as.numeric() 
    }) 

    output$ntext <- renderPrint({ 
    str(order()) 
    }) 
} 
関連する問題