【问题标题】:Generate reactive input table生成反应输入表
【发布时间】:2019-07-26 17:58:33
【问题描述】:

我有一个反应式闪亮,它连接到 MySQL 并根据用户的输入呈现数据表。在表mytable中,

A 列的值 - WonLost
B 列的值 - WonLostTied
C 列的值 - 1 到 9
D 列的值 - 0 到 150
E 列的值 - 1 或 2

这 4 个值是根据用户输入选择的。 mytable 表还有其他列,例如 E 和 F,它们不依赖于用户输入。

ui <- fluidPage(fluidRow(
column(4,radioButtons("firstorsecond", "First or Second",
choices = c(1: 2),selected='1')),

column(4,radioButtons("anotherselection", "Choose won or lost",
choices = list("Won" = 1, "Lost" = 2),selected='1')),

column(4,radioButtons("result", "Match Result",
choices = list("Won" = 1, "Lost" = 2, "Tied"=3),selected='1')),


column(4,checkboxGroupInput("pos", "Position", 
choices = c(1:9),inline = TRUE)),

column(4,sliderInput("range", "Score Range", min = 0, 
    max = 150,value = c(25,75))
))
)

server <- function(input, output) 
{

 rs=dbSendQuery(mydb,"select A,B,C,D,E,F from mytable where name='abcd'")
 adv_ana=fetch(rs,n=-1)

 dataInput<-reactive({
 **code goes here**
 })
 }

dataInput&lt;-reactive({}),帮我弄清楚如何获取输入 值并显示一个包含所有列的表格。

提前致谢。

【问题讨论】:

    标签: r shiny reactive rmysql


    【解决方案1】:

    您可以使用dplyr::filter 根据您的条件过滤行(未经测试,因为我没有您的数据):

    datainput <- reactive{(
      your_table %>% 
        dplyr::filter(A == input$firstorsecond,
                      B == input$anotherselection,
                      C == input$result,
                      D == input$pos)
    })
    

    您可能已经适应了您的实际输入,因为我计算了 5 个输入,而在您的描述中您只提到了 4 列。

    【讨论】:

    • 另外,我如何获得滑块范围值(上下之间)来指示显示的运行?因为我们最终有两个值,而不是其他小部件的一个值。
    • 代码获取您的数据框和过滤器并返回它。检查?dplyr::filter 了解如何使用它来查找介于两个值之间的值。 between 也可以帮到你。
    • 我的错。我更正了输入以匹配描述。此代码块不会呈现表格,而是使其呈深灰色且无响应。
    • 如果我们没有您的数据,很难从远处调试您的代码。我想您可能必须将一些变量转换为numeric 才能进行有意义的比较。另请检查stackoverflow.com/questions/5963269/… 以生成可重复的示例,这将有助于获得正确的答案。
    猜你喜欢
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2021-07-05
    • 2019-12-20
    • 2021-09-21
    • 2017-08-25
    相关资源
    最近更新 更多