我知道这个案例定义了在没有满足任何先前案例的情况下该怎么做,但是为什么它被称为“ TRUE”而不是“ ELSE”?
library(dplyr)
mtcars %>%
mutate(new = case_when(
cyl == 4 ~ "weak",
cyl == 6 ~ "medium",
TRUE ~ "other"
))
答案 0 :(得分:4)
首先,如import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Example {
//reads the encrypted password, decrypts it
// and injects it in the field DataBasePassword
@Value("${DataBase.Password}")
private String DataBasePassword;
@RequestMapping("/")
public String decryptPassword() {
return DataBasePassword;
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
所说,
LHS必须评估为逻辑向量。
这意味着不允许使用ELSE之类的东西,因为它不是逻辑值。但是,也许有人仍然想知道为什么我们不能使用FALSE。
这是您的示例中所有内容的工作方式。首先,我们在所有行中查看?case_when
为cyl == 4
的情况,并将相应的新值设置为TRUE
。其次,在剩余的 行中,我们寻找"weak"
为cyl == 6
并在其中使用TRUE
。如果我们在这里停止,那么
如果没有匹配的情况,则返回NA。
那么,我们如何处理其余的行呢?在其余每种情况下,"medium"
(使用回收)通常为TRUE
,允许返回TRUE
。
因此,这是LHS必须具有逻辑性以及处理特定情况的顺序方式的组合。