Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.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
R中带有3个条件的If-Else语句_R_If Statement - Fatal编程技术网

R中带有3个条件的If-Else语句

R中带有3个条件的If-Else语句,r,if-statement,R,If Statement,我试图使用if-else语句在数据集中创建一列。我希望这个if-else语句在df“option1”中创建一个名为“Surgical”的列,该列显示“Duration”列的值减去20,前提是Duration中的值大于625,并且“Variability”列中指示了因子“Single”。 我尝试了以下代码: option1$Surgical <- ifelse(option1$Variability == "Single", option1$Duration - 20, option1$Du

我试图使用if-else语句在数据集中创建一列。我希望这个if-else语句在df“option1”中创建一个名为“Surgical”的列,该列显示“Duration”列的值减去20,前提是Duration中的值大于625,并且“Variability”列中指示了因子“Single”。 我尝试了以下代码:

option1$Surgical <- ifelse(option1$Variability == "Single", option1$Duration - 20, option1$Duration)

选项1$Surgical我们可以使用
&
|
检查多种情况。在这里,我们需要
,因为这两个条件都应该满足

option1$Surgical <- ifelse(option1$Variability == "Single" &
       option1$Duration > 625, option1$Duration - 20, option1$Duration)
option1$Surgical 625,option1$Duration-20,option1$Duration)

您可以直接执行此操作,而无需使用
ifelse

option1$Surgical <- with(option1, Duration - (20 * 
                                  (Variability == 'Single' & Duration > 625)))


因此,只要条件(
Variability=='Single'&Duration>625
)为
TRUE
,它就会从
Duration
中减去20,否则为0。

您可以使用
指定一个条件,即
选项1$Variability=='Single'&option1$Duration>625
20 * TRUE #gives
#[1] 20
20 * FALSE #gives
#[1] 0