Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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中ifelse()函数的语法_R_If Statement - Fatal编程技术网

R中ifelse()函数的语法

R中ifelse()函数的语法,r,if-statement,R,If Statement,我有一个名为old_images 此数据集中的一列称为difference,它可以取1和1115之间的值 我还有另一个名为Quarter的列,我希望根据该行的差值值的季度,该列的值为1、2、3或4 因此,规则如下: 如果old_images$difference介于1和279之间,则old_images$Quarter=1 否则 如果old_images$difference介于280和558之间,则old_images$Quarter=2 否则 如果old_images$difference介

我有一个名为
old_images

此数据集中的一列称为
difference
,它可以取
1
1115
之间的值

我还有另一个名为
Quarter
的列,我希望根据该行的
差值
值的季度,该列的值为
1
2
3
4

因此,规则如下:

如果
old_images$difference
介于
1
279
之间,则
old_images$Quarter
=
1

否则

如果
old_images$difference
介于
280
558
之间,则
old_images$Quarter
=
2

否则

如果
old_images$difference
介于
559
837
之间,则
old_images$Quarter
=
3

否则

如果
old_images$difference
介于
838
1115
之间,则
old_images$Quarter
=
4


任何帮助都将不胜感激,非常感谢

来自
dplyr
程序包时,您可以在
案例之间使用

 library(dplyr)

  old_images <- old_images %>% mutate(Quarter  = case_when(
  between(difference, 1, 279) ~ 1,
  between(difference, 280, 558) ~ 2,
  between(difference, 559, 837) ~ 3,
  between(difference, 838, 115) ~ 4,
  TRUE                          ~ 4
                        ))
库(dplyr)
旧图像%变异(四分之一=情况)(
在(差,1279)~1之间,
在(差,280558)~2之间,
在(差,559837)~3之间,
在(差,838115)~4之间,
对~4
))

dplyr::case\u when
将是在这种情况下使用的一个好选项。@user20650:您链接到的问题不是关于
ifelse
哪个OP没有问的问题for@Tung; 同意,但它提供了相同的结果,但更有效的方式,似乎appropraite@EdinPC:参见本节了解
案例syntax@user20650:那么这不是一个完全相同的副本
ifelse
不仅用于这种情况,因此OP学习正确使用它的方法很有好处@MKR感谢您,这非常有效!