【发布时间】:2019-05-21 11:07:23
【问题描述】:
使用 Shiny Dashboard、ui.r、server.r 和几个包含函数的 r 脚本。
基本问题是:我有两个数据集带入 server.r,我将它们传递给准备/清理数据集的函数,然后将它们绑定在一起,应该返回一个完整的数据帧。 dataFrame 应该是响应式的。这是我目前所拥有的:
在 server.r 中,我在函数(输入、输出、会话)之前加载数据。然后我有:
################server.r code #########################
data <- reactive({
testDF <- prepData(data1, data2)
})
prepData 函数做了很多事情,但以:
####################prepData function return#################
return(rbind(data1, data2))
如果我使用类似的东西:
############## server.r code#######################
value = nrow(data()),
然后代码返回正确的值。但是,我更愿意像使用 testDF 一样返回数据框。
Shiny 将在未找到对象“testDF”的 UI 中抛出错误。
我尝试解决:How do I build a reactive dataframe in R / Shiny? 使用代码:
dataR <- prepData(data1, data2)
makeReactiveBinding(dataR)
这仍然会引发错误。该功能显然可以正常工作并且已经过验证,但是对于使用此功能的反应性组件,我一定有一些不明白的地方。任何帮助,将不胜感激。谢谢!
server.ui
function(input, output, session) {
### PreProcess the Data
data <- reactive({
testDF <- prepData(bdata, qdata)
})
#dataR <- prepData(bData, qData)
#makeReactiveBinding(dataR)
### Information Box Populations
output$monthlytransactions = renderInfoBox({
infoBox(
title = "Payments",
value = nrow(data()),
icon = icon("comments-dollar"),
color = "blue"
)
})
output$monthlyGrossDollars = renderInfoBox({
infoBox(
title = "Payments",
value = sum(testDF$GrossAmount),
icon = icon("comments-dollar"),
color = "blue"
)
})
}
prepData
############# FUNCTIONS ##############
prepData <- function(beamData, qlawData){
##Processing##
#Join DFs
return(rbind(bData, qData))
【问题讨论】:
标签: r shiny shinydashboard shiny-reactivity