gpt4 book ai didi

R Shiny 嵌套 uiOutput 错误 : input => uiOutput => uiOutput => output

转载 作者:行者123 更新时间:2023-12-02 00:10:51 25 4
gpt4 key购买 nike

我在设计嵌套输入/输出应用时遇到了问题。 (我也试过把这个问题发到shiny-discuss,但是发的时候会被自动删除,为什么?)

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

  1. 按文本区域输入数据集。即:input$textarea.in

  2. 加载数据集并显示导入数据集的名称列表。用户可以通过 selectInput 选择数据。即:uiOutput("choosedata")

  3. 计算所选数据的范围,然后显示一个 sliderInput。即:uiOutput("range")

  4. 最后,计算 sliderInput 选择的值的平方。即:verbatimTextOutput("range.out")

即:

input => uiOutput => uiOutput => output
(work!) (work!) (error!)

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

Data.A 1 2 3 4 5
Data.B 6 7 8 9 10 11

另一种输入格式是:

Data.C 1 3 5 7
Data.D 2 4 6 8

第 2 步和第 3 步会自动更改,但第 4 步不会。如何解决?

最佳

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

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

#=========================
#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
})

})

最佳答案

这是 Shiny 中的一个错误,已在 this commit 中修复.感谢举报!

(您多次尝试发帖到 shiny-discuss 都被 Google 网上论坛归类为垃圾邮件。我已经取消垃圾邮件并回复了您最近的帖子,并将您标记为安全发件人,希望这种情况不会再次发生。抱歉给您带来不便!)

关于R Shiny 嵌套 uiOutput 错误 : input => uiOutput => uiOutput => output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com