R-dplyr :: case_when计算错误时

时间:2018-08-20 20:56:39

标签: r dplyr

我正在尝试编写一条dplyr::case_when语句来捕获函数中的错误并将其替换为其他变量。不幸的是,case_when似乎没有正确评估空变量,而是返回了空变量而不是替换变量。

下面的代码应具有replacement variable的输出,但我却得到character(0)

x <- character(0) #is_empty(x) evaluates as TRUE
y <- "replacement variable"

case_when(
   is_empty(x) ~ paste(y), #replace with y if no x value
   TRUE ~ paste(x)) #otherwise use x

有什么想法可能导致这种情况和/或如何解决?

我尝试过更改case_when中参数的顺序,以及使用以下方法:

length(x) == 0 ~ paste(y)

1 个答案:

答案 0 :(得分:1)

class Node { constructor(date) { this.date = date } } var foo = new Node(new Date()); // foo instanceof Node => true 返回一个向量,该向量的长度等于您传入的向量的长度。因此,什么也没有,什么也没有。如果需要更改长度,则可能只需要基本的case_when语句; if\else在这种情况下不是正确的功能。这不是通用的switch语句。它是矢量数据转换器。

在这种情况下,您会这样做

case_when