【发布时间】:2018-05-01 15:20:14
【问题描述】:
我尝试使用闪亮的服务器基于一个子集进行计算 - 称为 sub1。 sub1 工作正常,直到我尝试选择某个列或尝试对其进行计算。
sub1 是来自大型数据集的子集。
附上我的代码。让我知道我做错了什么。非常感谢。
server <- function(input,output) {
data1 <- read.csv("..",fileEncoding="UTF-8-BOM")
sub1<- reactive(subset(data1,Sex == input$sex & AVS.Impairment ==
input$impairment & Year == input$yr & Mortality <= max(input$mm) & Mortality
>= min(input$mm)))
output$text<-renderDataTable(sub1())
# I want to use the sub1 to run more calculation.
# But when I try to select the column and create column it won't work
sub1$table = paste0(sub1$Sex) %>% tolower # this line doesn't work
# error is object of type 'closure' is not subsettable
}
shinyApp(ui=ui, server=server)
【问题讨论】:
-
使用 sub1()$Sex 你正在使用一个响应函数,它是一个闭包。
-
谢谢哈兰。我以前试过。它没有用。相反,它显示了一个不同的错误 --- .getReactiveEnvironment()$currentContext 中的错误:没有活动的反应上下文不允许操作。 (你试图做一些只能从反应式表达式或观察者内部完成的事情。)
-
通过提供可重现的示例,它会更容易帮助您。
-
@MLavoie 感谢您的回复。所以它从一开始就是一个大数据集。然后我根据条件用户输入得到一个子集。但我想在子集上运行计算并生成一个图表。
-
如果您查看 R 数据集包,您会发现许多数据集可用于重现您遇到的问题。这将使您生成可重现的示例。