【发布时间】:2020-09-17 01:13:59
【问题描述】:
我试图创建函数来模拟现金流,似乎 Shiny 不接受在其中创建函数 似乎 Shiny 不接受我在其中使用来自用户界面的输入来创建函数:
library(shiny)
library(DT)
library(FinCal)
ui <- fluidPage(
numericInput("investimento_inicial",0,0),
numericInput("periodo",0,0),
numericInput("quantidade_mensal",0,0),
numericInput("preco",0,0),
numericInput("custo_fixo",0,0),
numericInput("salario_funcionario",0,0),
numericInput("numero_funcionarios",0,0),
numericInput("taxa_mensal",0,0),
numericInput("redutor",0,0),
numericInput("tempo_inicio",0,0),
numericInput("capacidade",0,0),
numericInput("chancesucesso",0,0),
numericInput("tempo_final",0,0),
numericInput("reducao_lucrounitariomeio",0,0),
numericInput("reducao_qtdmeio",0,0),
numericInput("aumento_cfmeio",0,0),
numericInput("reducao_lucrounitariofinal",0,0),
numericInput("reducao_qtdfinal",0,0),
numericInput("aumento_cffinal",0,0),
numericInput("venda_final",0,0),
numericInput("iniciopreco",0,0),
numericInput("finalpreco",0,0),
numericInput("iniciocv",0,0),
numericInput("finalcv",0,0),
numericInput("iniciocf",0,0),
numericInput("finalcf",0,0),
numericInput("iniciodemanda",0,0),
numericInput("finaldemanda",0,0),
verbatimTextOutput("table")
)
server <- function(input, output, session) {
output$table=renderPrint({
risco2<-function(input$investimento_inicial,input$periodo,input$quantidade_mensal,input$preco,input$custo_fixo,input$custo_unitario,
input$salario_funcionario,input$numero_funcionarios,input$taxa_mensal,input$redutor,input$tempo_inicio,input$capacidade,input$chancesucesso,input$tempo_final,
input$reducao_lucrounitariomeio,input$reducao_qtdmeio,input$aumento_cfmeio,input$reducao_lucrounitariofinal,input$reducao_qtdfinal,input$aumento_cffinal,input$venda_final,
input$iniciopreco,input$finalpreco,input$iniciocv,input$finalcv,input$iniciocf,input$finalcf,input$iniciodemanda,input$finaldemanda ){
input$custo_fixo<-input$custo_fixo+input$salario_funcionario*input$numero_funcionarios
lunitario<-input$preco-input$custo_unitario
duracao1<-(input$periodo-input$tempo_inicio-input$tempo_final)/2
cashflow<-c(-input$investimento_inicial,
rep(c(sum(lunitario*input$quantidade_mensal-(lunitario*input$quantidade_mensal*input$redutor))-input$custo_fixo),input$tempo_inicio),
rep(c(sum(lunitario*input$quantidade_mensal)-input$custo_fixo),duracao1),
rep(c(sum((1-input$reducao_lucrounitariomeio)*lunitario*input$quantidade_mensal*(1-input$reducao_qtdmeio))-input$custo_fixo*(1+input$aumento_cfmeio)),duracao1),
rep(c(sum((1-input$reducao_lucrounitariofinal)*lunitario*(input$quantidade_mensal*(1-input$reducao_qtdfinal)))-input$custo_fixo*(1+input$aumento_cffinal) ),input$tempo_final),
input$venda_final)
npv(input$taxa_mensal,cashflow)
}
})
}
object 'input' not found
如何使用用户界面输入在闪亮内部创建适当的功能?
【问题讨论】:
-
shiny
input$<name>变量是可以用作已定义函数的输入的变量,但不能在函数创建本身中使用;查看@MatCordTo 的答案