これは、他の場所にプロットされている値の上または下の10を示すサマリーブロックのモックアップです。光沢のあるリアクティブドロップダウン(数値入力による)
ISSUE
変数名を変更したり、ソート方向が正常に動作しているが、データが示すためにどのくらいの制限()を変更、作品最初は10を示したが、へレス5のようにそれを変える示す終わりますすべてのデータより高い値に変更すると機能することがありますそれは非常に奇妙です!
のでOK
OK未
CODE
library(shiny)
library(data.table)
dataset1 <- as.data.table(iris)
server <- function(input, output) {
# Top table
datatop1 <- reactive({
dt <- copy(dataset1)
setorderv(dt,input$t1, input$sort1) # -1 is descending
# choose subset of rows
row.limit <- min(nrow(dataset1), input$limit1)
dt <- dt[1:row.limit, ]
# choose columns
dt <- dt[, .(Species, get(input$t1))]
setnames(dt,"V2",input$t1)
return(dt)
})
output$top1 <- renderUI({
if(!is.null(dataset1)) {
fluidRow(inputPanel(
selectInput("limit1", "Limit:",
c("5", "10", "15", "20", "25", "50"),
selected = "10"),
selectInput(("t1"), "Variable:", choices = names(dataset1),
selected = "Sepal.Length"),
selectInput("sort1", "Sort by:",
choices = c('Bottom/Asc.' = +1 , 'Top/Desc.' = -1),
selected = -1)
))
}
})
# Top panel
output$screenTop1 <- renderTable({
# top dataset is in reactive as function
datatop1()
})
output$screenTop <- renderUI({
tagList(
uiOutput("top1"),
uiOutput("screenTop1")
)
})
}
ui <- shinyUI(
fluidPage(tabPanel("Top", uiOutput("screenTop"))
)
)
shinyApp(ui=ui, server = server)
です?それとも私は反応的な方法を使っていますか?光沢のあるエキスパート - 私が間違っていることや、まだ反応性を完全には把握していないので、私は何をやっているのか、感謝します。メインコードは別のファイル構造の中にあるので、コードはちょっと複雑です。
> sessionInfo()
R version 3.2.4 Revised (2016-03-16 r70336)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.9.6 shiny_0.13.2
EDIT:以下の説明
@Porkチョップの偉大なコメントはmin
が文字にすべてを強要終わることができていることを説明しています。したがって、226と5に直面したとき、それは226と5のテストになり、要素ごとに2の値が "5"になるので、最小値として226が選択され、すべての行が表示されます。
しかし、10と20の間は、そうではありませんでした。 "226"と "10"の最初の数字1 < 2.正確な最小値が示されました。 レッスン:腕時計タイプで、必要に応じてSelectInput入力$ varsをas.numeric
に設定してください。
謎解説!
ありがとうございました。 **これは私が半日狂ってしまったため、あなたの答えに**理由を説明できますか?あなたは常に入力変数の型をチェックする必要がありますか?いつあなたは必要ですか? – micstr
エクストラとヒントのおかげでPorkChopに感謝します。私は 'print'を使用して、それが時々分として226で戻ってくるのを見て驚いた。どのように文字列がいくつかの時間に変換され、いつもウィッグをしていない奇妙。 – micstr
多くの偉大なプログラマーが何よりもデータ型に多くの注意を払っていることに注意してください。 –