gpt4 book ai didi

r - 选择输入以填充 Shiny 中的文本框

转载 作者:行者123 更新时间:2023-12-04 11:13:33 25 4
gpt4 key购买 nike

我的目标是将一个值从选择输入填充到文本输入。用户稍后应该能够修改文本输入。不幸的是,我的应用程序不起作用(未填充选择)但没有错误。

用户界面

library(shiny)

shinyUI(fluidPage(

sidebarLayout(
sidebarPanel(
selectInput("id",
label = "Choose a number",
choices = list()
),

textInput("txt1", "number", 0)

),



mainPanel(

)
)
))

服务器
df <- data.frame(a=c(1,2),b=c(3,4))

shinyServer(function(input, output, session) {
# fill the select input
updateSelectInput(session, "id", choices = df$a)

observe({
# When I comment this line, the select is correctly filled
updateTextInput(session, "txt1", value = df[df$a==input$id,'a'])
})

})

任何可能出问题的想法?

最佳答案

您的代码不适用于您的示例数据集,但适用于:

df <- data.frame(a=c("a","b"),b=c(3,4))

我的猜测是 updateSelectInput() 需要一个字符。但是,这不起作用:
updateSelectInput(session, "id", choices = as.character(df$a))

但是如果你将 df 定义为:
df <- data.frame(a=c("1","2"),b=c(3,4))

这有效。示例的完整代码:
library(shiny)

df <- data.frame(a=c("1","2"),b=c(3,4))

shinyApp(
ui = shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("id",
label = "Choose a number",
choices = list()
),
textInput("txt1", "number", 0)
),
mainPanel()
)
)),
server = shinyServer(function(input, output, session) {
updateSelectInput(session, "id", choices = df$a)

observe({
updateTextInput(session, "txt1", value = df[df$a==input$id,'a'])
})
})
)

关于r - 选择输入以填充 Shiny 中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25996428/

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