gpt4 book ai didi

r Shiny {gtsummary} by= 来自第二个 SelectInput 的参数 react

转载 作者:行者123 更新时间:2023-12-04 08:41:39 26 4
gpt4 key购买 nike

到此为止:r shiny reactive gt_summary table
我想要一个 gtsummary 表,其中包含以 react 方式 (Input$y) 从 SelectInput 字段中选择的变量。这已经实现了。
现在我想从第二个响应式(Reactive) SelectInput 字段 (Input$x) 中为 gtsummary 选择 by= 参数。尝试了很多但没有成功。谢谢你的帮助。
我的代码:

library(shiny)
library(gtsummary)
library(gt)
# make dataset with a few variables to summarize
iris2 <- iris %>% select(Sepal.Length, Sepal.Width, Species)
# add fake factor column
iris2 <- iris2 %>%
mutate(Species_1 = Species)


shinyApp(
ui = fluidPage(
fluidRow(
column(12,
# Select variable to analyze
selectInput(inputId = "y",
label = "Y-Variable:",
choices = c("Sepal Length" ="Sepal.Length",
"Sepal Width" = "Sepal.Width"),
selected = "Sepal.Length"),

# select factor variable
selectInput(inputId = "x",
label = "Factor:",
choices = c("Species" = "Species",
"Other Species" = "Species_1"),
selected = "Species"),

gt_output('table')
)
)
),
server = function(input, output) {

varY <- reactive({
input$y
})
varX <- reactive({
input$x
})

output$table <- render_gt({

table1 <- iris2 %>% select(iris2, all_of(varY())) %>%
tbl_summary(by = varX()) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>% as_gt()
})

})

最佳答案

这可以像这样实现:

  • 您复制了数据集的名称,即 iris2 %>% select(iris2, all_of(varY()))应该只是 iris2 %>% select(all_of(varY()))
  • 您还必须选择 by变量,即 select(all_of(c(varY(), varX())))
  • 将 react 函数直接传递给 by给出一个错误。因此我添加了一个辅助变量 by我传递给 by tbl_summary 的论据.
    output$table <- render_gt({
    by <- varX()
    table1 <- iris2 %>%
    select(all_of(c(varY(), by))) %>%
    tbl_summary(by = by) %>%
    add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>% as_gt()
    })
  • 关于r Shiny {gtsummary} by= 来自第二个 SelectInput 的参数 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64539128/

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