Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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
在case_when()中使用包函数引发错误tidyR_R_Tidyr_Mutate - Fatal编程技术网

在case_when()中使用包函数引发错误tidyR

在case_when()中使用包函数引发错误tidyR,r,tidyr,mutate,R,Tidyr,Mutate,我在何时使用tidyR case_,我在一个mutate中有一段代码: column = case_when( is.na(iptools::is_valid(!!sym(ip_col_name))) ~ 'EMPTY / INVALID_IP', iptools::ip_in_any(!!sym(ip_col_name), unlist(a)) ~ 'SECOND CONDITION APPLIES' # Raises error TRUE

我在何时使用tidyR case_,我在一个mutate中有一段代码:

column = case_when(
          is.na(iptools::is_valid(!!sym(ip_col_name))) ~ 'EMPTY / INVALID_IP',
         iptools::ip_in_any(!!sym(ip_col_name), unlist(a)) ~ 'SECOND CONDITION APPLIES' # Raises error
        TRUE ~ NA_character_
        )
当出现无效IP-->时,我的问题就开始了。情况_when中的第一行中的条件将应用,但不幸的是,情况_any中的第二行(IP _any)将触发并引发错误

注意:iptools::ip_is_any如果将无效ip作为参数,则会引发错误

# Example 1
Error in iptools::ip_in_any("not-ip", c("127.0.0.1/64")) : Invalid argument

# Example 2
Error in iptools::ip_in_any(NA, c("127.0.0.1/64")) : 
  Expecting a string vector: [type=logical; required=STRSXP].

# Example 3
Error in iptools::ip_in_any(NULL, c("127.0.0.1/64")) : 
  Expecting a string vector: [type=NULL; required=STRSXP].

如果第一行(无效ip)已经满足,我可以防止第二行触发吗?如果没有,任何人都知道如何使用清晰简洁的代码来实现它?

您好,请提供您的数据的最小子集,也许可以使用
dput()
。您是否尝试将它(即第二句话)更改为
!is.na(iptools::is_valid(!!sym(ip_col_name)))和iptools::ip_in_any(!!sym(ip_col_name),未列出(a))
?从你的描述中,这是我的直觉,但是如果没有一个最小的可复制的例子,这有点困难。