R 如何在闪亮的应用程序中一次点击就运行包含循环的代码?

R 如何在闪亮的应用程序中一次点击就运行包含循环的代码?,r,shiny,shiny-server,R,Shiny,Shiny Server,嗨,我正试图通过一个互动的闪亮的应用程序点击运行一组代码。 我相对较新,在运行一键式代码时会感到困惑。下面是虚拟代码 shinyUI(fluidPage( titlePanel("Pricing Change"), sidebarLayout( sidebarPanel( h3("Select Features"), selectInput("sku","Select SKU ", choices = as.character(main_f

嗨,我正试图通过一个互动的闪亮的应用程序点击运行一组代码。 我相对较新,在运行一键式代码时会感到困惑。下面是虚拟代码

shinyUI(fluidPage(

titlePanel("Pricing Change"),
sidebarLayout(
  sidebarPanel(
    h3("Select Features"),
    selectInput("sku","Select  SKU ",
                choices = as.character(main_file$Alternatives) ,
                selectize = T),
    .
    .
    .
    .

    actionButton("do", "Click Me")
  ),
  mainPanel(
    tableOutput("ckt"),
     )))



shinyServer(function(input,output){
sku5 <- reactive({input$sku}) 
main_file$Alternatives <- as.character(main_file$Alternatives) 

#Getting utilities for interpolar price points
interpolar_pp <- reactive({
aa <- spline_plot(main_file,sku5())
return(aa)
})

ck_tab <- data.frame()

output$ckt <- renderTable({ input$do 
isolate(
for(z in 1:nrow(interpolar_pp())){

elas_matrix[elas_matrix$bought_sku==sku5(),sku5()] <- interpolar_pp()[z,2]
el_sum <- apply(elas_matrix[,-1],1,sum)
elas_matrix$total_cross_els <- el_sum


#Adding cross price elasticities with feature utilities
Optimizer_panel<-sqldf("select a.*, b.total_cross_els as cross_els
                       from Optim_panel as a 
                       left join
                       elas_matrix as b
                       on a.Alternatives = b.bought_sku")



Optimizer_panel$Total_util <- as.numeric(Optimizer_panel$Feature_Util + 
Optimizer_panel$cross_els )

#Ranking skus in each panel based on total utility
Optimizer_panel$Total_util <- Optimizer_panel$Total_util*(-1)
Optimizer_panel <- setDT(Optimizer_panel )
Optimizer_panel[, rank := frank(Total_util),
                by = list(RespID)]

#setting counter for selected sku as Top sku
Optimizer_panel <- as.data.frame(Optimizer_panel)
sku1_top <- nrow(Optimizer_panel[Optimizer_panel$Alternatives==sku5() & 
Optimizer_panel$rank==1,])
.
ck_tab[z,"Price"] <- interpolar_pp()[z,1]
ck_tab[z,"Count"] <- sku1_top
}
ck_tab })
shinyUI(fluidPage(
titlePanel(“定价变更”),
侧边栏布局(
侧栏面板(
h3(“选择功能”),
选择输入(“sku”,“选择sku”,
choices=as.character(主文件$alternations),
选择大小=T),
.
.
.
.
操作按钮(“执行”、“单击我”)
),
主面板(
表格输出(“ckt”),
)))
shinyServer(功能(输入、输出){

sku5请不要在一次发帖中问两个问题,请尝试“sku5 Hi Cpak!感谢您的建议。但它不起作用,它仍然给出相同的错误:参数1(键入“list”)不能由“cat”处理……在上述代码sku5()中是一个反应列表,包含我想要子集的行地址。使用行地址(行地址随用户提要而变化)子集数据集的一般做法是什么?谢谢!
1.I'm subsetting a dataframe by the use of rownumber.
Eg: Multiple skus are selected by user on app
sku <- reactive({input$sku})

#I wanna subset all those rows where my_file$sku is in reactive list created 
above
I generally use 
rnum <- which(my_file$sku %in%  sku)
req_set <- myfile[rnum,] in general R

#Similarly I'm trying to do in shiny server, I created a reactive rnum() and 
then trying to subset, on this it throwing an error: argument 1 (type 
'list') cannot be handled by 'cat'


2. In my app I'm getting action button but my code is not running  (I have 
tested my code in general R and its working fine there).