이것은 다른 곳에서 플롯되고있는 값의 위쪽 또는 아래쪽 10을 보여주는 요약 블록의 모형입니다.반짝이는 반응 형 드롭 다운 (숫자 입력 사용)
ISSUE
변수 이름을 변경하거나 정렬 방향이 잘 작동하지만, 데이터를 표시하는 방법에 많은 한계 (limit1
)을 변경, 작품 처음에 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
으로 설정해야합니다.
수수께끼 설명!
치료를 한 Thanks Pork Chop. ** 이것이 당신을 반나절 동안 미치게 만들었 기 때문에 ** 당신의 대답에 ** 이유를 설명해주십시오. 입력 변수에 항상 유형을 확인해야합니까? 언제해야합니까? – micstr
엑스트라와 팁에 대한 감사 PorkChop. 나는'print'를 사용했고, 때때로 그것은 min으로 226으로 돌아 오는 것을보고 놀랐다. 이상한 것은 어떻게 문자열이 시간의 일부 변환하고 항상 가발하지 않았다. – micstr
대부분의 위대한 프로그래머는 데이터 유형에 대해 다른 어떤 것보다 많은 것을주의해야합니다. –