If/else语句计算不正确/R
为R工作 在我的If/else语句计算不正确/R,r,if-statement,boolean,shiny,R,If Statement,Boolean,Shiny,为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.nul
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(“gonein if”)
但是我的第一次打印(输入$startZiel)
根据我在应用程序中单击的内容,为我打印正确的数字。您当前正在做的是将输入$startEnd
转换为整数,通过对其空值求反,将该整数转换为布尔值,然后将该布尔值与整数进行比较。因为您的数字不为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")
}
}
})您当前正在做的是将
input$startEnd
转换为一个整数,通过对该整数的空值求反,将该整数转换为布尔值,然后将该布尔值与整数进行比较。因为您的数字不为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")
}
}
})是.null()==1
没有多大意义。只需使用is.null()
if
需要一个布尔值,并且为.null()
输出一个布尔值。我不知道是什么。null()==2
正试图实现…是。null()==1
没有多大意义。只需使用is.null()
if
需要一个布尔值,并且为.null()
输出一个布尔值。我不知道是什么。null()==2
正试图实现。。。。