Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If/else语句计算不正确/R_R_If Statement_Boolean_Shiny - Fatal编程技术网

If/else语句计算不正确/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

为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(“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
正试图实现。。。。