在同一个反应函数中创建多个数据帧并分别输出
Creating multiple Data Frames in the same reactive function and outputting each separately
在服务器端,我获取用户输入的数据:
stressed.flag <- reactive({input$flags})
然后我使用这个输入在反应语句中创建多个数据帧:
getdata <- reactive({
df <- readWorksheetFromFile(x, y)
df1 <- df[which(df[,1] %in% stressed.flag()),1:11]
)}
这是问题 --> 我想将数据帧 df1 和 df2 都输出给用户,但我不知道要执行的语法 so.I 可以尝试使用 renderDataTable 命令输出一个数据帧(在服务器端并链接到 UI 端)但这也不起作用。
output$bogus = renderDataTable({
df1()
})
我想我的问题是如何告诉机器在 output$bogus 语句中抓取哪个数据帧。也许我想要 df1,也许我想要 df2,也许两者都来自 getdata 反应语句
您可以使用列表 return 一对对象 list(df1=..., df2=...)
然后使用 getdata()[['df1']]
但是通过反应式获得一个数据集通常是个好主意,所以我会这样做:
stressed.flag <- reactive({input$flags})
df <- reactive(readWorksheetFromFile(x, y))
df1 <- reactive({
data <- df();
data[data[,1] %in% stressed.flag(),1:11]})
output$full= renderDataTable(df())
output$stressed= renderDataTable(df1())
您也可以将 data[data[,1] %in% stressed.flag(),1:11]
替换为 data[data$col1Name==stressed.flag(),1:11]
在服务器端,我获取用户输入的数据:
stressed.flag <- reactive({input$flags})
然后我使用这个输入在反应语句中创建多个数据帧:
getdata <- reactive({
df <- readWorksheetFromFile(x, y)
df1 <- df[which(df[,1] %in% stressed.flag()),1:11]
)}
这是问题 --> 我想将数据帧 df1 和 df2 都输出给用户,但我不知道要执行的语法 so.I 可以尝试使用 renderDataTable 命令输出一个数据帧(在服务器端并链接到 UI 端)但这也不起作用。
output$bogus = renderDataTable({
df1()
})
我想我的问题是如何告诉机器在 output$bogus 语句中抓取哪个数据帧。也许我想要 df1,也许我想要 df2,也许两者都来自 getdata 反应语句
您可以使用列表 return 一对对象 list(df1=..., df2=...)
然后使用 getdata()[['df1']]
但是通过反应式获得一个数据集通常是个好主意,所以我会这样做:
stressed.flag <- reactive({input$flags})
df <- reactive(readWorksheetFromFile(x, y))
df1 <- reactive({
data <- df();
data[data[,1] %in% stressed.flag(),1:11]})
output$full= renderDataTable(df())
output$stressed= renderDataTable(df1())
您也可以将 data[data[,1] %in% stressed.flag(),1:11]
替换为 data[data$col1Name==stressed.flag(),1:11]