我试图访问服务器内的输出值在我闪亮的应用程序。这些值由用户在循环中输入:根据数字'n_matrizes',用户输入'n_matrizes'的矩阵数量。然后服务器使用lapply:
将所有这些矩阵收集到一个列表中lapply(1:(n_matrizes()),function(i){
matrixInput(inputId = paste0("W_",i),
label = paste("Matriz espacial de ordem", i),
value = matrix(0,nrow=n_radares(),ncol=n_radares()))})
在服务器中,我需要访问列表中的每个矩阵。我试过使用reactive
和reactiveValues
,但因为我是新手,所以我没有成功。
在正常的R编码中,我以前这样做过:
创建矩阵列表:
w_1 <- matrix(1,nrow=4,ncol=4)
w_2 <- matrix(2,nrow=4,ncol=4
w_3 <- matrix(3,nrow=4,ncol=4
W <- list(w_1,w_2,w_3)
访问其中一个:
W[[1]]
我如何在闪亮的服务器上做到这一点?
您可以使用它的inputId
访问服务器内的任何输入元素。如果inputId
是字符串和数字的组合,您已经知道使用paste()
。假设您有一个小部件列表,其名称模式为W_1
,W_2
,W_3
…您可以使用input[[paste0("W_", 1L)]]
轻松访问它们。当然,你也可以用任何整数变量来代替这个数字。
从您的示例中,我假设您有一个创建inputMatrix
的几个实例的函数。您的代码还表明,当我反复调用该函数时,我将获得具有相同inputId
W_1
,W_2
, ....的多个实例这将导致错误。确保你的inputId
是唯一的.