【问题标题】:Selecting Date Range from Column in R从R中的列中选择日期范围
【发布时间】:2020-09-15 09:01:39
【问题描述】:

我在 R 中有一个数据集,我使用 read.table (Table Name a) 读取了该数据集。我想选择从“2007-02-01”到“2007-02-02”的日期。当前日期列属于“字符”类。

     Date     
1 16/12/2006               
2 16/12/2006            
3 16/12/2006             
4 16/12/2006            
5 16/12/2006              
6 16/12/2006             

我尝试了以下方法:
1. as.Date(a$Date) 以“0016-12-20”格式返回日期
2. a[a$Date >= '2007-02-01' & a$Date 3. strptime(a$Date,'%d%b%Y') 返回NA值

【问题讨论】:

    标签: r dataframe date datetime datatable


    【解决方案1】:

    将日期转换为日期类和子集:

    df$Date <- as.Date(df$Date, '%d/%m/%Y')
    subset(df, Date >= as.Date('2007-02-01') & Date <= as.Date('2007-02-02'))
    

    你也可以使用:

    library(dplyr)
    
    df %>%
      mutate(Date = lubridate::dmy(Date)) %>%
      filter(Date >= as.Date('2007-02-01') & Date <= as.Date('2007-02-02'))
    

    【讨论】:

    • 谢谢罗纳克!几个问题: 1. 我们不使用 %b 一个月吗? 2. as.POSIXlt 可以在 Date 列上工作吗?
    • %b 用于“Jan”、“Feb”等月份。 2) Posixlt 可以处理日期,但它主要用于日期和时间,这里我们只有日期。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多