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