如何使用 lapply 存储输出?

如何解决如何使用 lapply 存储输出?

我正在构建一个应用程序,允许用户提交足球运动员的阵型。播放器名称存储在 .csv 文件中。这些名称被读入,然后作为选择输入的输入。用户应该首先选择一个编队,然后根据所选的编队出现带有名称的选择输入。通过使用 lapply,这很有效(在下面的示例中,有 2 个选择输入)。
我现在的问题是我想将选定的名称存储在一个变量中以进一步使用它们。变量 myval 应该存储选定的名称。它以某种方式仅适用于第一个选择输入的第一个选定名称

我的意思是这样可以工作并存储在第一个选择输入中选择的名称

     myval <- eventReactive(input$i[1],{input$i[1]}) 

但这不起作用:

     myval <- eventReactive(input$i[2],{input$i[2]}) 

您可以在下面找到完整的代码。 非常感谢!

ui.R:

    fluidPage(
    #Dropdown
      selectInput("Formation",label = "Formation",choice = c("",433,343)),#Output
      uIoUtput(outputId = "select_formation")
    )

server.R:


    function(input,output,session){
    
    #input_names <- read.csv("temp.csv",TRUE,";")
    input_names <- structure(list(Goalkeeper = c("-","Max","Mo","Tobi","",""),Defender = c("-","Bob","Julius","Mat","Hans","Peter","Tom")),class = "data.frame",row.names = c(NA,-7L))

    output$select_formation = renderUI(
        if(input$Formation == 433){      
          lapply(1:2,function(i){
          selectInput(inputId = "i",label = names(input_names[i]),choices = c(input_names[,i]))
          })
        })

      myval <- eventReactive(input$i[2],{input$i[2]}) 
 }

解决方法

感谢提供数据。这是一个可能有用的工作示例。

动态创建的 inputIdselectInput 是由 paste0("id",i) 创建的,因此您的示例中将有 id1id2

您的 myval reactive 表达式可以再次通过 lapply 获取输入值列表,使用相同的 id 供参考。

library(shiny)

ui <- fluidPage(
  selectInput("Formation",label = "Formation",choice = c("",433,343)),uiOutput(outputId = "select_formation"),uiOutput("select_inputs")
)

server <- function(input,output,session) {
  
  output$select_formation = renderUI(
    if(input$Formation == 433){      
      lapply(1:2,function(i){
        selectInput(inputId = paste0("id",i),label = names(input_names[i]),choices = c(input_names[i]))
      })
    })
  
  myval <- reactive({
    lapply(1:2,function(i) {
      input[[paste0("id",i)]]
    })
  })
                         
  output$select_inputs <- renderUI({
    paste("You selected: ",paste(myval(),collapse = ","))
  })
  
}

shinyApp(ui,server)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?