首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >闪亮的嵌套uiOutput错误:输入=> uiOutput => uiOutput =>输出

闪亮的嵌套uiOutput错误:输入=> uiOutput => uiOutput =>输出
EN

Stack Overflow用户
提问于 2013-03-17 17:41:47
回答 1查看 2K关注 0票数 3

我在设计一个嵌套的输入/输出应用程序时遇到了问题。(我还试着把这个问题发到发亮-讨论上。但是,当我发帖时,它将自动删除。为什么?)

我的应用程序可以简化为以下步骤:

  1. 按文本区域输入数据集。即: input$textarea.in
  2. 加载数据集并显示导入数据集的名称列表。用户可以通过selectInput选择数据。I:uiOutput(“选择数据”)
  3. 计算选定数据的范围,然后显示sliderInput。即:uiOutput(“范围”)
  4. 最后,计算sliderInput选择的值的平方。即:逐字输出(“range.out”)

这就是:

代码语言:javascript
复制
input => uiOutput => uiOutput => output
          (work!)     (work!)    (error!)

更改导入数据集后,第4步将发生错误。更具体地说,最初的输入格式是:

代码语言:javascript
复制
Data.A 1 2 3 4 5
Data.B 6 7 8 9 10 11

另一种输入格式是:

代码语言:javascript
复制
Data.C 1 3 5 7
Data.D 2 4 6 8

步骤2和步骤3将自动更改,但步骤4不会更改。怎么修呢?

最好的

请注意,在线应用程序和代码如下:

http://glimmer.rstudio.com/tchsieh/myapp/

代码语言:javascript
复制
#=========================
#ui.R
#=========================
library(shiny)
shinyUI(pageWithSidebar(  
  headerPanel("Title"),
  sidebarPanel(
    p("Text Area:"),
    tags$textarea(id="textarea.in", rows=3, "Data.A 1 2 3 4 5 \nData.B 6 7 8 9 10 11"),
    uiOutput("choosedata"),
    uiOutput("range")
  ),

  mainPanel(    
    h2("Test"),

    h3("Raw Data (step1: work!)"),
    verbatimTextOutput("textarea.out"),

    h3("Range of the selected data (step2: work!)"),
    verbatimTextOutput("summary"),

    h3("Squared of the selected value (step3:error when change Text area)"),
    verbatimTextOutput("range.out")


  )
))

#=========================
#server.R
#=========================
library(shiny)
shinyServer(function(input, output) {
  loadPaste <- reactive({
    text <- input$textarea.in
    temp <- lapply(readLines(textConnection(text)), function(x) scan(text = x, what='char'))
    out <- list()
    out.name <- 0
    for(i in seq_along(temp)){
      out.name[i] <- temp[[i]][1]
      out[[i]] <- as.numeric(temp[[i]][-1])
    }
    names(out) <- t(data.frame(out.name))
    out
  })

  output$textarea.out <- renderPrint({
    loadPaste()
  })

  output$choosedata <- renderUI({
    dataname <- names(loadPaste())  
    dataList <- list()
    for(i in seq_along(dataname)){
      dataList[[i]] <- dataname[i]
    }
    selectInput("dataset", "Select dataset:", choices  = dataList, selected = dataList[1])
  })

  output$summary <- renderPrint({
    out <- loadPaste()
    id <- which(names(out) == input$dataset)
    mydata <- out[[id]]
    range(mydata)

  })

  output$range <- renderUI({
    out <- loadPaste()
    id <- which(names(out) == input$dataset)
    mydata <- out[[id]]
    sliderInput("range.in", "Selecte a value in the range of data", min=min(mydata), value=mean(mydata), max=max(mydata), step=diff(range(mydata))/10)
  })

  output$range.out <- renderPrint({
    (input$range.in)^2
  })

})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-19 23:58:52

这是一个在此承诺中修复的闪亮错误。谢谢你的报告!

(你反复尝试发帖到闪亮的讨论,都被谷歌分类为垃圾邮件。我没有垃圾邮件,并回复了你最近的帖子,并标记你是一个安全的发送者,希望这种情况不会再次发生。对不起,不便之处!)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15463988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档