0
反応スライダーを開発しようとしていますが、なぜ機能しないのか分かりません。「警告:[.data.frame:未定義の列が選択されました] 。 ご協力いただければ幸いです。サブセットのsliderInputの反応的な変更
これまで、私はuiOutput( "slider")を使ってサーバーからオブジェクトを呼び出そうとしました。
ui.r
library(shiny)
DF <- readRDS("data/SF.rds")
shinyUI(fluidPage(
titlePanel("Cartera Total - Bancos"),
sidebarLayout(
sidebarPanel(
helpText("Evolución de la cartera total según entidad bancaria"),
selectInput("var",
label = "Entidad Financiera",
choices = c('B. AZTECA',
'B. CENCOSUD PERU',
'B. CONTINENTAL',
'B. DE COMERCIO',
'B. DE CREDITO DEL PERU',
'B. FALABELLA PERU',
'B. FINANCIERO',
'B. GNB',
'B. ICBC',
'B. INTERAMERICANO DE FINANZAS',
'B. RIPLEY',
'B. SANTANDER PERU',
'CITIBANK',
'INTERBANK',
'MIBANCO',
'SCOTIABANK PERU'),
selected = "BANCO AZTECA"),
uiOutput("slider")
),
mainPanel(
fluidRow(
column(12,
splitLayout(cellWidths = c("50%", "50%"),
plotlyOutput("deuda_dir"),
plotlyOutput("deuda_mora"))
)
,
column(10,
tabsetPanel(id = 'Entidad',
DT::dataTableOutput("tabla")
))
)
)
)
))
server.r:私は、コードをチェックして
library(shiny)
library(plotly)
library(ggplot2)
library(scales)
DF <- readRDS("data/SF.rds")
ban_sit <- function(df){
# Seleccionas y luego : Ctrl+R
p <- ggplot(data = df,
aes(x = fec_cierre,
y = TotalCreditosDirectos/1000)) +
geom_line(colour = "midnightblue")+
scale_y_continuous(labels = comma)+
xlab("Fecha de Cierre")+
ylab("Créditos Directos (En MM de Soles)")
gg <- ggplotly(p)
gg
}
ban_mora <- function(df){
p <- ggplot(data = df,
aes(x = fec_cierre,
y = Deuda_Mora_porc)) +
geom_line(colour = "firebrick4")+
scale_y_continuous(labels = comma)+
xlab("Fecha de Cierre")+
ylab("Ratio de Mora (%)")
gg <- ggplotly(p)
gg
}
shinyServer(
function(input, output) {
tabla_seg <- reactive({
args <- switch(input$var,
'B. AZTECA'='B001', # Solo entidades activas
'B. CENCOSUD PERU'='B002',
'B. CONTINENTAL'='B003',
'B. DE COMERCIO'='B004',
'B. DE CREDITO DEL PERU'='B005',
'B. FALABELLA PERU'='B007',
'B. FINANCIERO'='B008',
'B. GNB'='B009',
'B. ICBC'='B010',
'B. INTERAMERICANO DE FINANZAS'='B011',
'B. RIPLEY'='B012',
'B. SANTANDER PERU'='B014',
'CITIBANK'='B020',
'INTERBANK'='B023',
'MIBANCO'='B024',
'SCOTIABANK PERU'='B025')
tabla_seg = DF[DF$cod_ent == args]
})
output$slider <- renderUI({
sliderInput("inslider","Slider",
min = min(tabla_seg()$fec_cierre),
max = max(tabla_seg()$fec_cierre),
value = c(min(tabla_seg()$fec_cierre),
max(tabla_seg()$fec_cierre))
)})
tabla_fec <- reactive({
tabla_fec = tabla_seg()[tabla_seg()$fec_cierre >= input$inslider[1] &
tabla_seg()$fec_cierre <= input$inslider[2],]
tabla_fec[order(tabla_fec$fec_cierre,
decreasing = TRUE),]
})
output$deuda_dir <- renderPlotly({
ban_sit(tabla_fec())
})
output$deuda_mora <- renderPlotly({
ban_mora(tabla_fec())
})
output$tabla <- DT::renderDataTable({
tab = tabla_fec()
row.names(tab) = NULL
tab$TotalCreditosDirectos <- formatC(tab$TotalCreditosDirectos,
format="d",
big.mark=',')
tab$Deuda_Mora_porc <- round(tab$Deuda_Mora_porc, 2)
tab <- tab[,c("fec_cierre",
"TotalCreditosDirectos",
"Deuda_Mora_porc")]
names(tab) <- c("Fecha de cierre",
"Deuda Directa (S/.)",
"Mora (%)")
DT::datatable(tab)
})
}
データを提供する可能性はありますか? –
ここではSF.rdsのサンプルをダウンロードできます:https://1drv.ms/u/s!Aiohja7mVQ6xkB14sqWkrR2dvrw6 –
私が今気づいたことは、tabla_seg = DF [DF $ cod_ent == args]はどの列も選択していないことですおそらくtabla_seg = DF [DF $ cod_ent == args、]でなければなりません。これが状況を改善すれば教えてください... –