这是一个摘要块的示意图,显示正在其他地方绘制的值的顶部或底部10。闪亮的被动下拉行为不当(带有数字输入)
ISSUE
改变变量名或排序方向工作正常,但改变的数据多少来显示极限(),作品最初表示10,但改变它不像5结束了示出所有的数据。有时可以更改更高的值,但并非总是如此。这很奇怪!
所以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
编辑:解释
@Pork印章的下面大的意见解释说,min
可以结束一切强迫字符。因此,当面对226和“5”时,它成为“226”和“5”的测试,并且在逐元素基础上“2”击败“5”,因此选择“226”作为最小值和显示的所有行。
但是对于10和20,它不是例如“226”和“10”的第一位数字1 < 2.显示正确的最小值。 课程:观看类型,并确保在需要时将SelectInput输入$ vars设置为as.numeric
。
神秘解释!
感谢猪排,工作的一种享受。请你可以**解释为什么**在你的回答中,因为这已经让我生气了半天。你总是需要检查输入变量的类型吗?你什么时候需要? – micstr
感谢PorkChop的额外和技巧。我使用了'print',并且很惊讶地发现它不断以226分钟作为分钟。奇怪的是,字符串如何在一段时间内进行转换,并不总是假发。 – micstr
请注意,绝大多数优秀的程序员都比其他任何东西都更关注数据类型 –