• R3—日期处理


    一. 问题引入

    下面是一个房地产价格数据,现在想要提取2008年6月份的数据进行分析,在R中该如何操作呢?
               city   price bedrooms squarefeet lotsize latitude longitude      month
    1 San Francisco 1470000        3       2424      NA 37.75651 -122.4469 2008-06-01
    2 San Francisco  385000        0       1304    2143 37.71010 -122.4216 2009-06-01
    3 San Francisco 1043000        2       1400      NA 37.77984 -122.3928 2009-06-01
    4 San Francisco  560000        2       1149      NA 37.78696 -122.4225 2009-01-01
    5 San Francisco  419000       NA         NA      NA 37.78696 -122.4225 2008-03-01
    6 San Francisco  552000       NA         NA      NA 37.78430 -122.3909 2009-03-01
    # 这里就涉及到R的日期处理方法!

    二. R日期处理方法简介

    # 1)取出当前日期

    > Sys.Date()
    [1] "2015-04-20"  
    > date()
    [1] "Mon Apr 20 15:46:32 2015"
    #2)字符串转化为日期
    as.Date()可以将一个字符串转换为日期值,默认格式是yyyy-mm-dd。
    ##在R中,日期类型其实是double类型,实际存储的是从1970年1月1日以来的天数!
    > as.Date('2015-4-20') ##得到"2007-02-01",显示为字符串,但实际是用double存储的!
    >as.double(as.Date("1970-01-01"))  #结果为0,是从1970年1月1日以来的天数。

    ## 可以把定制的日期字符串转换为日期型

    > as.Date("2015年4月20日", "%Y年%m月%d日") 
    [1] "2015-04-20"

    #3)日期转化为字符串

    > today <- Sys.Date()
    > format(today, "%Y年%m月%d日")
    [1] "2015年04月20日"
    $4)计算日期差

    由于日期内部是用double存储的天数,所以是可以相减的。

    > today<-Sys.Date()
    > age30<- as.Date("2020-01-01") 
    > age30-today
    Time difference of 1717 days
    @@@离我30岁只有1717天了啊!

    ##用difftime()函数可以计算相关的秒数、分钟数、小时数、天数、周数

    difftime(today, age30, units="weeks")  #还可以是“secs”, “mins”, “hours”, “days”

    > difftime(today, age30, units="weeks")  
    Time difference of -245.2857 weeks

    三. 需求解答

    > dat<-subset(x = dat,subset =(as.double(as.Date(dat$month))>=14031 & as.double(as.Date(dat$month))<=14060)) #as.Date将字符型month转化成日期型,as.double转化成double型!
    > head(dat)
                city   price bedrooms squarefeet lotsize latitude longitude      month
    1  San Francisco 1470000        3       2424      NA 37.75651 -122.4469 2008-06-01
    24 San Francisco  815000       NA         NA      NA 37.74917 -122.4500 2008-06-01
    29 San Francisco  548000        2       1100    1792 37.71153 -122.4623 2008-06-01
    33 San Francisco  400000       NA         NA      NA 37.79035 -122.4126 2008-06-01
    59 San Francisco 1795000        3       1028      NA 37.80241 -122.4186 2008-06-01
    88 San Francisco 2300000       10       6600    2738 37.77007 -122.4320 2008-06-01
     
  • 相关阅读:
    一个2013届毕业生(踏上IT行业)的迷茫(2)
    一个2013届毕业生(踏上IT行业)的迷茫(1)
    Java 开源博客——B3log Solo 0.6.5 正式版发布了!
    Java 开源博客——B3log Solo 0.6.5 正式版发布了!
    在CSDN博客中添加量子恒道统计功能的做法
    Struts2——(8)struts2中文件的上传
    Struts2——(7)拦截器组件
    让富文本编辑器支持复制doc中多张图片直接粘贴上传
    ASP net 上传整个文件夹
    js文件夹上传
  • 原文地址:https://www.cnblogs.com/Bfrican/p/4441845.html
Copyright © 2020-2023  润新知