使用闪亮的R。
在我的ui.R
我有一个看起来像这样的元素
radioButtons("startEnd",
label = "Choose",
choices = list("start" = 1,
"end" = 2),
selected = NA,
inline = TRUE
)
在我的server.R
我有这个
observeEvent(input$startEnd, {
print(input$startEnd)
if (!is.null(as.integer(input$startEnd)) == 1) {
print("Gone in if")
} else if (!is.null(as.integer(input$startEnd)) == 2) {
print("Gone in else if")
} else {
print("Gone in nothing")
}
})
但是,它总是评估为print("Gone in if")
。 但是我的第一个print(input$startZiel)
会打印出正确的数字,具体取决于我在应用中点击的内容。
答案 0 :(得分:2)
您目前正在做的是将input$startEnd
转换为整数,通过否定其null来将该整数转换为布尔值,然后将该布尔值与整数进行比较。因为您的数字不为null,所以布尔值计算为TRUE,它等于1,因此第一个条件始终成立。我想你想要的实际上是以下内容,
observeEvent(input$startEnd, {
print(input$startEnd)
asInt = as.integer(input$startEnd)
if(!is.null(asInt)) {
if (asInt == 1) {
print("Gone in if")
} else if (asInt == 2) {
print("Gone in else if")
} else {
print("Gone in nothing")
}
}
})