从下面的示例中,我希望用户输入的显示仅每 2 秒(2000 毫秒)更新一次。但事实并非如此,它的更新速度与我不包含 debounce 语句时一样快。
if (interactive()) {
options(device.ask.default = FALSE)
ui <- fluidPage(
textInput(inputId = "text",
label = "To see how quickly..."),
textOutput(outputId = "text")
)
server <- function(input, output, session) {
text_input <- reactive({
input$text
})
debounce(text_input, 2000)
output$text <- renderText({
text_input()
})
}
shinyApp(ui, server)
}
Run Code Online (Sandbox Code Playgroud) 问题很简单,在许多其他帖子中,但我还没有找到满意的答案。假设你有一列标签(这里是字母)和其他列中的其他值(这里只有一个“值”)。
data <- tibble(letter = letters[1:5], value = 1:5)
Run Code Online (Sandbox Code Playgroud)
现在你想要的是生成所有没有排列的对,并将值附加到每个对元素上。这是我拥有的解决方案,我认为它是有效的,但......不优雅。
combn(data$letter, m = 2) %>%
t() %>%
as_tibble() %>%
rename(letter_1 = V1, letter_2 = V2) %>%
left_join(data, by = c("letter_1" = "letter")) %>%
left_join(data, by = c("letter_2" = "letter"), suffix = c("_1", "_2"))
Which outputs the desired result:
# A tibble: 10 x 4
letter_1 letter_2 value_1 value_2
<chr> <chr> <int> <int>
1 a b 1 2
2 a c 1 3
3 a d 1 4
4 …Run Code Online (Sandbox Code Playgroud)