【发布时间】:2017-07-19 08:45:01
【问题描述】:
我希望构建一个交互式数据可视化。 我的数据集包含 1244 个 obs 和 9 个变量 分享以下数据截图: Screenshot of sample Dataset
数据可视化流程:
-
从输入框中选择公司名称,它将给出一个输出表(主数据集中该公司的子集)
-
从输入框中选择上述compary的DIR
-
删除 DIR 后,如果存在,它将给出公司名称的输出(在检查主数据集后)。
下面提供了我编写的代码,但它不起作用。我会感谢宝贵的意见。提前致谢。
用户界面
navbarPage(
title = "SHELL COMPANY",
tabPanel("COMPANY INFO",
fluidRow(
column(4, selectInput("name","COMPANY NAME:", c("ALL", unique(as.character(cmp$`STD COMPANY NAME`))))),
column(4, DT::dataTableOutput("table")
))),
tabPanel("DIR INFO",
fluidRow(
column(4, selectInput("dir","DIRECTOR NAME:", sort(unique(as.character(cmp$`DIR NAME`)))))),
column(4, DT::dataTableOutput("table2"))
))
服务器
function(input,output)
{
data <- cmp
rv <- reactiveValues()
observe({
rv$table <- cmp
if(input$name!="ALL"){
rv$table <- data[data$`STD COMPANY NAME`==input$name,]
}
})
output$table <- DT::renderDataTable(DT::datatable(
{
rv$table
}))
output$table2 <- DT::renderDataTable(DT::datatable(
{
data2 <- rv$table
data2 <- subset(rv$table, data$'DIR NAME'==input$dir, select=c(`STD COMPANY NAME`, `DIR NAME`))
data2
}))}
【问题讨论】:
-
一个使用 dput() 的小数据集,seee stackoverflow.com/questions/5963269/… 会很有帮助。
-
编辑时,我在 output$table2 中移动了一个大括号。检查这是否改变了一些东西。请说明您面临的错误。
-
为什么
subset(data, data$'DIR NAME'==input$dir, select = ....中的引号不同? -
@ClaudH:谢谢你,我纠正了。我收到的错误是 table$
STD COMPANY NAME中的错误:'closure' 类型的对象不是子集 -
@K.Rohde:表$
STD COMPANY NAME中的错误:“闭包”类型的对象不是子集。