R 如何通过合并两个数据帧来创建反应数据帧

R 如何通过合并两个数据帧来创建反应数据帧,r,shiny,R,Shiny,我有一个闪亮的应用程序 我有两个数据帧,它们创建了第三个数据帧。我希望用户在这个合并的数据帧上执行各种操作。因此,第三个数据帧应该是被动的。数据帧仅在按下“合并”按钮后填充 我不明白的是,当应用程序启动时不存在响应数据帧时,如何创建该数据帧 到目前为止,我的代码是: 用户界面 服务器.R 库(闪亮) RVreactiveVal()创建单个反应值,而不是列表,因此不能添加名为data的列表项。试试这个: RV您正在使用Endomerge2作为函数。您是否尝试过RV3$data@akrun?出于各种

我有一个闪亮的应用程序 我有两个数据帧,它们创建了第三个数据帧。我希望用户在这个合并的数据帧上执行各种操作。因此,第三个数据帧应该是被动的。数据帧仅在按下“合并”按钮后填充

我不明白的是,当应用程序启动时不存在响应数据帧时,如何创建该数据帧

到目前为止,我的代码是:

用户界面 服务器.R
库(闪亮)
RV
reactiveVal()
创建单个反应值,而不是列表,因此不能添加名为
data
的列表项。试试这个:


RV您正在使用
Endomerge2
作为函数。您是否尝试过
RV3$data@akrun?出于各种原因,我不得不使用endomerg2,但它确实返回了一个数据帧,所以这不应该是问题。谢谢@Wil。我没有意识到这就像添加一个空数据框作为反应值那么简单,更多的是关于
reactiveVal()
reactiveValues()
之间的区别,以及如何创建对象并为其赋值。依我看,它们之间可能存在细微差别,在给定的情况下,一个比另一个好并不总是直观的。
fluidPage(tabsetPanel(type = "tabs",
 tabPanel("Merged Dataset", tableOutput("table2"),
           actionButton("Endomerge2",label = "Endomerge2"),
           DT::dataTableOutput("pathTable"),
           DT::dataTableOutput("endoTable"),
           DT::dataTableOutput("mergedTable")
  )
))
library(shiny)

RV <- reactiveValues(data = DataToMerge1)
RV2 <- reactiveValues(data = DataToMerge2)
RV3<-reactiveVal(0)



server <- function(input, output) {      
  output$endotable = DT::renderDT({
    RV$data
  })
  output$pathTable = DT::renderDT({
    RV2$data
  })
  output$mergedTable = DT::renderDT({
    RV3$data
  })



 #Button to merge the dataframes on

    observeEvent(input$Endomerge2,{
    RV3$data<-Endomerge2(RV$data,"AcolumnToMerge",RV2$data,"AcolumnToMerge")
  },ignoreInit = TRUE)

}