gpt4 book ai didi

r - 如何使输入轨道日志保持 Shiny ,然后打印并保存?

转载 作者:行者123 更新时间:2023-12-04 11:39:36 24 4
gpt4 key购买 nike

我正在开发一个 Shiny 的应用程序,它接受输入并显示它。如何保持输入更多文本并保持跟踪?

setwd("G:/work/R_Prj/Learning-shiny")

library(shiny)

ui <- fluidPage(
titlePanel("TRY-1"),
sidebarLayout(
sidebarPanel(
textInput("txtInput", "Input to Display")
),
mainPanel(
paste("------------->"),
textOutput("txtOutput"),
textOutput("logg")
)
)
)

server <- shinyServer(function(input, output) {
logg <- NULL
output$txtOutput <- renderText({
if(nchar(input$txtInput)==0) {
txx <- paste(input$txtInput,"not yet input")
}else{
txx <- paste(input$txtInput,"<--------")
}
txx
})
output$logg <- renderText({
logg <- c(logg, input$txtInput)
})
})

shinyApp(ui = ui, server = server)
input$txtInput作为接受文本输入的框和 output$txtOutput作为处理文本的框。而 output$logg收藏 input$txtInput .

如何收集输入的文本,打印(或 txtOutput )并将其保留以供进一步处理,例如计数甚至保存日志?

我可以在这里想到两个问题。 1.如何判断输入结束,并标记为新记录? 2.如何记录和检索?保存每个输入?然后它回到问题一。

Nothing input
1st input: sss
2nd input, after erase 1st

谢谢你的建议。

最佳答案

您可以存储 textInput 的值里面reactiveValues单击按钮时会更新。在下面的例子中,你初始化一个空的 data.frame和一个计数器,当点击按钮时都会更新。所有输入都存储在 data.frame 中.

如果您想在 session 后存储这些值以供重用,您可以使用 bookmarkButton本地存储 或者您也可以将值存储在 的 SQL 数据库或 NoSQL 数据库中。永久存储 .

  library(shiny)


ui <- fluidPage(
titlePanel("TRY-1"),
sidebarLayout(
sidebarPanel(
textInput("txtInput", "Input to Display"),
actionButton("store", "Store value in dataframe")
),
mainPanel(
tableOutput("table")
)
)
)

server <- shinyServer(function(input, output) {

rv <- reactiveValues(dfnew=data.frame(matrix(ncol = 2, nrow = 0)) ,count=1)

storedvalues <- observeEvent(input$store, {
if(nchar(input$txtInput) > 0) {
rv$dfnew <- rbind(rv$dfnew, df())
rv$count = rv$count + 1
} else {
}
})

df <- reactive({
data.frame(
id = rv$count,
value = input$txtInput
)
})

output$table <- renderTable({
rv$dfnew
})


})

shinyApp(ui = ui, server = server)

关于r - 如何使输入轨道日志保持 Shiny ,然后打印并保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56608214/

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