如何解决功能中的条件未产生预期的输出
我最近开始学习R中的函数,并且有一个函数使用两种方法来解决它。 这是一个可行的方法:
find_longer_vector <- function(a,b) {
vlength <- case_when(
length(a) > length(b) ~ "First",!(length(a) > length(b)) ~ "Second",(length(a) == length(b)) ~ "Equal length"
)
return(vlength)
}
前两个条件运行,但第三个条件不起作用,请帮忙。
find_longer_vector <- function(a,b){
if (length(a) > length(b)) {
vlength <- "First"
} else if(!(length(a) > length(b))){vlength <- 'Second'
} else if(length(a) == length(b)){
vlength <- 'Equal'
return(vlength)
}}
在这方面获得帮助真是棒极了。
解决方法
case_when
以顺序方式执行命令,这意味着它将首先检查条件1是否为TRUE
,它将返回相应的输出,而不检查其他条件。如果为FALSE
,它将进入条件2。
第三个条件无效,因为在达到第三个条件之前,第二个条件(!(length(a) > length(b))
)变为TRUE
,因此它返回该值。首先将条件相等。
find_longer_vector <- function(a,b) {
vlength <- dplyr::case_when(
length(a) == length(b) ~ "Equal length",length(a) > length(b) ~ "First",TRUE ~ "Second",)
return(vlength)
}
find_longer_vector(1:10,1:10)
#[1] "Equal length"
find_longer_vector(1:10,1:15)
#[1] "Second"
find_longer_vector(1:10,1:5)
#[1] "First"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。