【发布时间】:2014-12-15 21:52:16
【问题描述】:
我正在尝试使用 R Markdown 和 Shiny 创建一个交互式计算器。计算器将根据复选框是否被触发,从导入的表格中汇总汽车价格。我已经为计算器创建了一个基本的外壳,但我不知道如何引用复选框。
我希望我的复选框与我的表格一致,但无法使用 checkBoxGroupInput 来做到这一点。但是,我确实找到了this recent SO thread,这表明我可以使用 cbind 将复选框的 HTML 向量(看起来是)与数据表结合起来:
---
output: html_document
runtime: shiny
---
### Select car(s)
```{r, echo=FALSE}
## import car data
data <- head(mtcars[1:6])
data$id <- seq(1:nrow(data))
## generate random car prices
set.seed(1)
data$price <- round(runif(nrow(data),5000,15000),0)
## create table w/ checkboxes
output$mytable = renderDataTable({
addCheckboxButtons <- paste0('<input id="table1" type="checkbox" name="row', data$id, '" value="op', data$id, '">',"")
#Display table with checkbox buttons
z <- cbind(Pick=addCheckboxButtons, data)
z
})
## display table
dataTableOutput({"mytable"})
```
上面的代码可以正常工作并生成我想要的表格。但是,我被卡住了,因为我不确定现在如何引用我的复选框向量。我知道我需要使用反应式语句来进行求和,但我不确定如何参考复选框来执行此操作。我想最后一段代码看起来像:
### Total bill
```{r, echo=FALSE}
my_sum <- reactive({z$price[z$Pick=="TRUE"]})
renderText(my_sum)
```
代码因data$Pick 部分不起作用而崩溃。我得到的错误是:
错误:参数 1(类型“闭包”)不能由“猫”处理
(据我了解,renderText 将第一个参数传递给cat,它不知道如何处理该函数。)
有人可以帮我参考我创建的复选框吗?
【问题讨论】:
标签: r shiny r-markdown