R 嵌套if_else语句

R 嵌套if_else语句,r,dplyr,R,Dplyr,我试图写下面的脚本,但我只得到7或40回,甚至认为满足所有其他变量的条件存在。我不太擅长循环,因此我不确定如何编写: Input2$SetUpTime<- if_else(Input2$finished_surface_area_inches < 10, "5", if_else(Input2$finished_surface_area_inches < 60, "7", if_else(Input2$finished_surface_a

我试图写下面的脚本,但我只得到7或40回,甚至认为满足所有其他变量的条件存在。我不太擅长循环,因此我不确定如何编写:

Input2$SetUpTime<-  
    if_else(Input2$finished_surface_area_inches <   10,  "5",
    if_else(Input2$finished_surface_area_inches <   60,  "7",
    if_else(Input2$finished_surface_area_inches <  200, "10",
    if_else(Input2$finished_surface_area_inches < 1000, "20",
    if_else(Input2$finished_surface_area_inches < 4000, "40", NA)))))
Input2$SetUpTime函数要求TRUE和FALSE返回值的类型相同。我们可以看到,例如,
“5”
NA
不是同一类型:

typeof("5")
[1] "character"

typeof(NA)
[1] "logical"
一个简单的修复方法是将
NA
更改为
NA\u字符

typeof(NA_character_)
[1] "character"
除此之外,您可能会得到意外的结果,因为您正在输入意外的数据。以下内容显示嵌套将在“预期”数据上工作:

库(dplyr)
somedata函数要求TRUE和FALSE返回值的类型相同。我们可以看到,例如,
“5”
NA
不是同一类型:

typeof("5")
[1] "character"

typeof(NA)
[1] "logical"
一个简单的修复方法是将
NA
更改为
NA\u字符

typeof(NA_character_)
[1] "character"
除此之外,您可能会得到意外的结果,因为您正在输入意外的数据。以下内容显示嵌套将在“预期”数据上工作:

库(dplyr)

有些数据可能
dplyr::if_else
?(通过示例代码中的
library(dplyr)
明确包含所有非基本包是很有帮助的。)我们永远不知道如何提供帮助,因为我们不知道
Input2
的结构。一般来说,当我发现嵌套的<代码> IF> <代码> >代码> IFOSER 时,我也考虑<代码> DPLYR::CASEY~ <代码>,它可以具有相同的效果,同时也更容易阅读/维护。请考虑做一个可重复的例子。是的,我确实使用了ifelse,但它不起作用,所以我尝试了Ifelsetoney,如果您将
dput(head(Input2))
的输出粘贴到您的问题中,我们可能会更好地通知您的问题。(还要添加代码的实际和预期输出。)可能是
dplyr::if_else
?(通过示例代码中的
library(dplyr)
明确包含所有非基本包是很有帮助的。)我们永远不知道如何提供帮助,因为我们不知道
Input2
的结构。一般来说,当我发现嵌套的<代码> IF> <代码> >代码> IFOSER 时,我也考虑<代码> DPLYR::CASEY~ <代码>,它可以具有相同的效果,同时也更容易阅读/维护。请考虑做一个可重复的例子。是的,我确实使用了ifelse,但它不起作用,所以我尝试了Ifelsetoney,如果您将
dput(head(Input2))
的输出粘贴到您的问题中,我们可能会更好地通知您的问题。(还要添加代码的实际输出和预期输出。)