簡體   English   中英

r閃亮的服務器從輸入創建向量以用於子集數據幀

[英]r shiny server create vector from inputs to use for subsetting dataframe

server <- (function(input, output, session){
  s1m <- reactive({c(input$s1m1,input$s1m2,input$s1m3)})

  library(stringdist)
  result <- responses[which.max(apply(responses,1,function(vec,dat){sum(vec==dat)},s1m)),]

  output$result <- renderUI(result)
})

我需要使用3個不同的用戶輸入s1m1,s1m2,s1m3專門創建一個字符向量“ s1m”,以便可以將其用於子集我的數據幀“響應”。

我得到的錯誤是vec == dat中的錯誤:比較(1)僅適用於原子類型和列表類型

我認為這是因為s1m被react()包裝,並且不被視為向量。 所以我的問題是如何將其強制為向量,或者是否有其他方法可以通過用戶輸入創建向量?

非常感謝大家!

我認為您應該創建如下的reactValues。 我沒有對此進行測試,但是您也可以將它們包裝到數據框或列表中。

server <- (function(input, output, session) {
  s1m <- reactiveValues({
    c(input$s1m1, input$s1m2,input$s1m3)
  })

  library(stringdist)
  result <-
    responses[which.max(apply(responses, 1, function(vec, dat) {
      sum(vec == dat)
    }, s1m())), ]

  output$result <- renderUI(result)
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM