我在nXm矩阵中有3个度量,代表n = 500和m = 31(表示1个月内的相同度量,包括:(“执行功能”,“工作记忆”,“抑郁”)三个不同的“试验” (“Trial1”,“Trial2”,“Trial3”)。我有6个不同的矩阵代表这些数据源的组合(即“Trial1_WM”)。我也有一个相应的变量及相应的日期。
我正在尝试构建一个R Shiny应用程序,我可以在其中选择这些数据集的子集以在直方图中绘制它们(即所有试验中的WM和日期范围,WM用于试验1等)。我已经构建了小部件并构建了应用程序来绘制所有数据的图形。但我无法弄清楚如何使用多个小部件来按我的意愿分割数据。下面是一些工作代码,其中包含我想要构建的所有小部件,这些小部件目前仅适用于带有滑块来存储数据的agregrate数据(即所有WM):
库(有光泽)
In [64]: arr.prod(axis=0)
Out[64]: array([ 1, 8, 27])
答案 0 :(得分:1)
一种选择是在服务器中使用被动()功能。它使您能够对矩阵 x 进行一些操作,这将是 renderPlot()中使用的矩阵。 例如,如果Study ='All'或者Study ='Trial1',则简单的if语句将创建不同的矩阵。
server <- function(input, output) {
filterData <- reactive({
if(input$Study == 'All')
x <- switch(input$Test,
"Executive Functioning" = cbind(Trial1_EF, Trial2_EF, Trial3_EF),
"Working Memory" = cbind(Trial1_WM, Trial2_EF, Trial3_WM),
"Depression" = cbind(Trial1_DP, Trial2_EF, Trial3_DP))
if(input$Study == 'Trial1')
x <- switch(input$Test,
"Executive Functioning" = cbind(Trial1_EF),
"Working Memory" = cbind(Trial1_WM),
"Depression" = cbind(Trial1_DP))
return(x)
})
output$distPlot <- renderPlot({
x <- filterData()
slider1 <- seq(floor(min(x)), ceiling(max(x)), length.out = input$slider1 + 1)
[...]
hist(x, breaks = slider1, col = color, main = legend)
})
}
您可以根据需要创建任意数量的被动()。