我正在構建一個閃亮的應用程式,并在一個 selectInput 小部件中我希望用戶在選項之間進行選擇:
- HRR,LRR,兩者
該圖將根據用戶輸入和正確運行而改變:
if HRR -> return "HRR"
if LRR -> return "LRR"
if Both -> return c("HRR", "LRR")
我想只用一行來應用這個條件。我試過使用 ifelse 但它回傳一個長度為輸入的物件:
ifelse(option == "Both", c("HRR", "LRR"), option)
但這只會在選擇的選項為“兩者”時輸出“HRR”。
謝謝!
uj5u.com熱心網友回復:
這是因為ifelse()只會回傳第一個元素(因為它是一個矢量化函式 - 它需要來自數字串列的輸入)。如果您只在option只是一個值時使用它,那么您可以使用普通的 if 陳述句。
option <- "Both"
if(option == "Both") c("HRR", "LRR") else option
[1] "HRR" "LRR
如果你想將它與向量輸入一起使用,你可以把上面的陳述句放在lapply().
option <- c("Both", "LRR", "HRR")
lapply(option, function(x) if(x == "Both") c("HRR", "LRR") else x)
[[1]]
[1] "HRR" "LRR"
[[2]]
[1] "LRR"
[[3]]
[1] "HRR"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533150.html
