R 在无功函数中分配无功值的问题
我在将被动函数中的值分配给被动值时遇到一些问题。根据输入$id,我想为正确的反应值分配一个值。然而,我无法写入反应值,尽管我可以观察到调用我的反应函数的正确值,例如在观察环境中。最后,我想根据输入$top,将输入$a1分配给reac.val$tab1,并将$a2分配给reac.val$tab2。 我在下面附上了我的ui.R和server.R文件 ui.RR 在无功函数中分配无功值的问题,r,shiny,reactive-programming,R,Shiny,Reactive Programming,我在将被动函数中的值分配给被动值时遇到一些问题。根据输入$id,我想为正确的反应值分配一个值。然而,我无法写入反应值,尽管我可以观察到调用我的反应函数的正确值,例如在观察环境中。最后,我想根据输入$top,将输入$a1分配给reac.val$tab1,并将$a2分配给reac.val$tab2。 我在下面附上了我的ui.R和server.R文件 ui.R library(shiny) shinyUI(navbarPage("My App", id = "top",
library(shiny)
shinyUI(navbarPage("My App", id = "top",
tabPanel("Infos", id = "info",
textInput("name", "last name", "")),
navbarMenu("Menu",
tabPanel("tab1",
column(3, textInput(inputId="a1", label="input1", value = 0 , width = 100)),
column(4, tableOutput("aim1"))),
tabPanel("tab2",
column(3, textInput(inputId="a2", label="input2", value = 0 , width = 100)),
column(4, tableOutput("aim2"))))
))
library(shiny)
shinyServer(function(input, output) {
val <- data.frame(first = numeric(1), second = numeric(1))
reac.val <- reactiveValues("tab1" = val, "tab2" = val)
observeTab <- reactive({
tab <- input$top
if (tab != "Infos") {
tab.df <- reac.val[[tab]]
first.val <- as.numeric(input$a1)
second.val <- as.numeric(input$a2)
tab.df$tab1 <- first.val
tab.df$tab2 <- first.val
reac.val[[tab]] <- tab.df
reac.val[[tab]]
}
})
output$aim1 <- renderTable({
reac.val[[input$top]]
})
output$aim2 <- renderTable({
reac.val[[input$top]]
})
})
server.R
library(shiny)
shinyUI(navbarPage("My App", id = "top",
tabPanel("Infos", id = "info",
textInput("name", "last name", "")),
navbarMenu("Menu",
tabPanel("tab1",
column(3, textInput(inputId="a1", label="input1", value = 0 , width = 100)),
column(4, tableOutput("aim1"))),
tabPanel("tab2",
column(3, textInput(inputId="a2", label="input2", value = 0 , width = 100)),
column(4, tableOutput("aim2"))))
))
library(shiny)
shinyServer(function(input, output) {
val <- data.frame(first = numeric(1), second = numeric(1))
reac.val <- reactiveValues("tab1" = val, "tab2" = val)
observeTab <- reactive({
tab <- input$top
if (tab != "Infos") {
tab.df <- reac.val[[tab]]
first.val <- as.numeric(input$a1)
second.val <- as.numeric(input$a2)
tab.df$tab1 <- first.val
tab.df$tab2 <- first.val
reac.val[[tab]] <- tab.df
reac.val[[tab]]
}
})
output$aim1 <- renderTable({
reac.val[[input$top]]
})
output$aim2 <- renderTable({
reac.val[[input$top]]
})
})
库(闪亮)
shinyServer(功能(输入、输出){
val我认为问题在于,observeTab
它是一个函数,但你们不知道它在哪里
您可以尝试添加
observe({
observeTab()
})
在您的服务器中,所以您在每次更改中调用您的函数
或者,如果您只想在选项卡更改时调用FUNCTION
observeEvent(input$top,{
observeTab()
})
打字错误
你这里有打字错误(我的想法)
tab.df$tab1