【问题标题】:Syntax for ifelse() Function in R Please [duplicate]R中ifelse()函数的语法请[重复]
【发布时间】:2018-04-29 19:30:27
【问题描述】:

我有一个名为old_images的数据集

此数据集中的一列称为difference,它可以采用11115 之间的值。

我还有另一个名为 Quarter 的列,我希望它具有 1234 的值,具体取决于该行的 difference 值是哪个 Quarter。

所以规则如下:

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

否则

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

否则

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

否则

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

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

【问题讨论】:

  • dplyr::case_when 在这种情况下是一个不错的选择。
  • @user20650:您链接到的问题与 OP 没有要求的 ifelse 无关
  • @Tung;同意,但它提供了相同的结果,但以更有效的方式,这似乎是合适的
  • @EdinPC:查看answer 了解case_when 语法
  • @user20650:那么它不是完全重复的吗? ifelse 不仅用于这种情况,因此对 OP 学习正确的使用方法很有好处

标签: r if-statement


【解决方案1】:

您可以将dplyr 包中的betweencase_when 用作:

 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
                        ))

【讨论】:

  • 非常感谢@MKR,这非常有效!
猜你喜欢
  • 1970-01-01
  • 2020-11-12
  • 2021-01-25
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多