【问题标题】:How to use ifelse with dates如何在日期中使用 ifelse
【发布时间】:2020-09-08 18:19:01
【问题描述】:

我在 R 中有日期,格式为 01/01/2000

我想创建一个列,其类别将我的主题分类为01/02/2001 ==1 之前或02/02/2001 ==2 之后的出生日期。这可以通过ifelse 完成吗?

你会如何表达?

谢谢

【问题讨论】:

  • 是否要提取每个日期中的日期?
  • 我想要一个 df$date_category 列,其中包含两个因素(1== 之前和 2== 之后),其中我使用 01/02 的截止值对 df$date 列中的日期进行分类/2001,因此 2001 年 2 月 1 日之前的日期为 1,之后的日期为 2。

标签: r date if-statement multiple-columns categories


【解决方案1】:

选项 1:ifelse()

ifelse(as.Date(date, "%d/%m/%Y") < as.Date("2001-02-02"), 1, 2)
# [1] 1 2 2 2

选项 2

2 - (as.Date(date, "%d/%m/%Y") < as.Date("2001-02-02"))
# [1] 1 2 2 2

选项 3:findInterval()

findInterval(as.Date(date, "%d/%m/%Y"), as.Date("2001-02-02")) + 1
# [1] 1 2 2 2

数据

date <- c("01/02/2001", "02/02/2001", "03/02/2001", "04/02/2001")

【讨论】:

    【解决方案2】:

    这取决于格式,您必须添加函数“as.Date()

    例如:

    日期

    adates=as.Date(dates, "%d-%m-%Y")

    ifelse(adates>as.Date("01-02-2001","%d-%m-%Y"),1,0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2019-08-17
      • 2021-11-11
      • 1970-01-01
      相关资源
      最近更新 更多