这是一个简单的可重现示例:
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
pickerInput("test",choices=list("A"=c(1,2,3,4,5),"B"=c(6,7,8,9,10)),multiple=TRUE),
textOutput("testOutput")
)
server <- function(input, output) {
output$testOutput <- renderText({paste(input$test)})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
我想要的是点击 A 并让 pickerInput 自动选择 1、2、3、4 和 5。或者如果我们点击 B,它会自动选择 6、7、8、9 和 10。
单击“A”后所需的输出:
任何帮助表示赞赏,谢谢。
这是我的 noUiSlider 的样子:
我想将刻度标签格式化为:1000 -> 1K、900000 -> 900K、5000000 -> 5M 等;即用适当的 SI 符号缩写数字。
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
tags$br(),
noUiSliderInput(
inputId = "noui",
label = "Slider vertical:",
value = 50,
orientation = "vertical",
range = list("min" = list(0),
"25%" = list(1000, 500),
"50%" = list(10000, 50000),
"75%" = list(4000000, 500000),
"max" = list(10000000)),
pips = list(
mode = "values",
values = list(0, 500, 1000, 900000, 5000000, 10000000),
density = 4
),
format = wNumbFormat(decimals = 0),
width = "300px", height …Run Code Online (Sandbox Code Playgroud) 我想显示一个电子表格,其中某些信息包含在shinyWidgets 下拉列表中,有时跨越多个页面。
如果单击下一页,则下拉菜单再次关闭。
如何避免这种情况?
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
br(),br(),br(),
p("How to go to the next page, without collapsing?"),
uiOutput("irisdrop", inline = TRUE)
)
server <- function(input, output, session) {
output$irisdrop <- renderUI({
dropdown(circle = FALSE, inputId = "iris",
label = "iris", status = "primary",
datatable(iris, rownames = NULL,
height = "100%",
selection = "none"
)
)
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud) observeEvent由于工作方式(通常非常直观),我在获取我正在寻找的应用程序中的功能时遇到了一些麻烦。
我正在寻找的基本功能是用户可以输入几个数字,单击“提交”,然后弹出一个模式以获取用户名。之后,应用程序记录姓名并对数字求和,然后清除输入。然后我希望用户能够使用相同的名称重复该过程 - 但应用程序当前的结构是,总和使用仅observeEvent当名称不同时才响应(即,连续两次使用相同的名称不会行不通,尽管我希望如此)。inputSweetAlert您可以在应用程序中看到,我尝试的解决方案是重置(using )的输入shinyjs,但我认为它无法访问它,因为它实际上不在 UI 端。我正在使用shinyWidgets sweetAlerts,我想继续这样做。
这是一个示例应用程序:
library("shiny")
library("shinyWidgets")
library("shinyjs")
ui <- fluidPage(
shinyjs::useShinyjs(),
numericInput("num1", "Enter a number", value=NULL),
numericInput("num2", "Enter another number", value=NULL),
actionButton(inputId = "go", label = "submit"),
verbatimTextOutput(outputId = "res1"),
verbatimTextOutput(outputId = "res2")
)
server <- function(input, output, session) {
observeEvent(input$go, {
inputSweetAlert(session = session, inputId = "name", title = "What's your name?")
})
x <- reactiveValues(val=NULL)
observeEvent(input$name, {
x$val <- input$num1 + input$num2
confirmSweetAlert(session = session, inputId …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用函数“showNotification”来显示绿色弹出窗口。
官方文档说,你可以使用参数“type”来改变颜色。
type A string which controls the color of the notification. One of "default" (gray), "message" (blue), "warning" (yellow), or "error" (red).
Run Code Online (Sandbox Code Playgroud)
以前有人尝试过这个吗?
有什么办法可以使用 HTML/HEX 代码吗?
更新
我最终重新着色了单一类型的 showNotifications,如下所示:
tags$head(tags$style(HTML('
.shiny-notification-error {
background-color:#FF5757;
color:#000000;
}
.shiny-notification-message {
background-color:#B5E26F;
color:#000000;
}
'))),
Run Code Online (Sandbox Code Playgroud) 我一直在尝试从包ShinyWidgets中制作带有子类别的pickerInput。
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
tags$h2("Select / Deselect all"),
pickerInput(
inputId = "p1",
label = "Select all option",
choices = list(subA = c("a","b","c"),
subB = c("a"),
subC = c("a","b")),
multiple = TRUE,
options = list(`actions-box` = TRUE)
),
verbatimTextOutput("r1")
)
server <- function(input, output, session) {
output$r1 <- renderPrint(input$p1)
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
问题是,当一个子类别只有一个元素时,输出有点奇怪,并且显示的内容与其他子类别不同。在我的示例中,我可以选择子类别的名称 (subB),但不能选择该子类别的元素 (“a”)
有没有办法来解决这个问题?