我有一个数据框列表:
dflist<- list(df_unemploy = "df_unemploy", df_apl = "df_apl")
并将矢量指标创建为:
indikator <- names(dflist)
并希望使用复选框:
从此列表中对每个数据框进行分组checkboxGroupInput('indicator',
'Choose df:',
names(dflist),
selected = names(dflist[1]))..
在我的 server.R 中,我正在尝试这样的事情:
indicator <- reaction$indicator
new_df <- dflist['indicator']
new_df <- as.data.frame(new_df)
return(new_df)
但我得到 NULL 值或警告: 警告:数据表中出错:&#39;数据&#39;必须是二维的(例如数据框或矩阵)
我尝试使用以下方法修复:
new_df <- as.data.frame(new_df)
server.R 的完整代码是:
library(shiny)
library(plyr)
library(dplyr)
library(ggplot2)
source("do_data.R") # here dflist created
source("do_label.R") # here indicator created
# Load the dataset
loadData <- function() {
dflist <- dflist
return(dflist)
}
# Shared data
globalData <- loadData()
# Get raw data
getTable <- function(dflist, reaction){
indicator <- reaction$indicator
new_df <- dflist[['indicator']]
new_df <- as.data.frame(new_df)
return(new_df)
}
shinyServer(function(input, output) { # server is defined within these parentheses
localFrame <- globalData
getReaction <- reactive({
return(list(indicator = input$indicator
)) })
output$ex1 = DT::renderDataTable({print(getTable(localFrame, getReaction()))}, options = list(dom = 'Rlrtp',searchHighlight = TRUE , pageLength = 15, language = list(search = 'Filter:'), extensions = 'KeyTable')) # output table
})
我在这里缺少什么?
此致
答案 0 :(得分:0)
子集无效,因为列表定义时列表对象保存为字符串,实际上所有这些都是数据集。
我改变了:
dflist<- list(df_unemploy = df_unemploy, df_apl = df_apl)
并结合约翰保罗的回答:
dflist[['indicator']]
一切正常。
此致