本文介绍了闪亮中的上一次输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在SHINY中保留以前的输入?
我想显示预估如何根据用户输入进行更改。
例如,如果用户更改输入且预估为up,则在某些面板中,我要打印该预估为up。
为此,我希望获得用户输入序列,如
> c(2,4,5,6)
[1] 2 4 5 6
其中2,4,5,6
是由sliderInput
获取的先前输入。也就是说,首先,用户选择2
,第二个选择数字是4
,依此类推。
编辑
以下是@gyd的ANSewer。
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Show a plot of the generated distribution
mainPanel(
verbatimTextOutput("print")
)
)
)
# print history of user input
server <- function(input, output) {
rv <- reactiveValues(prev_bins = NULL)
observeEvent(input$bins, {
# If event occurs, then run the following append function
rv$prev_bins <- c(rv$prev_bins, input$bins)
})
# Output
output$print <- renderPrint({
paste(rv$prev_bins, collapse = ",")
})
# output$print <- renderPrint({
#
# paste(s, input$bins,sep = ",")
# })
}
# Run the application
shinyApp(ui = ui, server = server)
推荐答案
您可以将先前的值和实际值存储在reactiveValues
对象中:
rv$prev_bins
初始化为NULL
,然后每次值更改时,新值都会追加到向量。
要仅保留以前的值和当前值,而不是全部,请使用:rv$prev_bins <- c(tail(rv$prev_bins, 1), input$bins)
。
编码:
# Initialize reactive values
rv <- reactiveValues(prev_bins = NULL)
# Append new value to previous values when input$bins changes
observeEvent(input$bins, {
rv$prev_bins <- c(rv$prev_bins, input$bins)
})
# Output
output$print <- renderPrint({
paste(rv$prev_bins, collapse = ",")
})
输出:
这篇关于闪亮中的上一次输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!