使用闪亮的仪表板、ui.r、server.r 和多个包含函数的 r 脚本。
基本问题是:我有两个数据集带入 server.r 中,并将它们传递给准备/清理数据集的函数,然后将它们绑定在一起并应返回完整的数据帧。数据帧应该是反应性的。这是我到目前为止所拥有的:
在 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 中抛出错误。
我尝试通过以下方式进行工作:如何在 R / Shiny 中构建反应式数据框? https://stackoverflow.com/questions/30443625/how-do-i-build-a-reactive-dataframe-in-r-shiny使用代码:
dataR <- prepData(data1, data2)
makeReactiveBinding(dataR)
这仍然会引发错误。该函数显然可以工作并且已经过验证,但是对于使用该函数的反应性组件,我一定有一些不明白的地方。任何帮助,将不胜感激。谢谢!
服务器.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))