• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • 【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2016年6月2日
      测试开头

      2.4日期

      其实,在R语言里,除了基本的数据结构类型外,时间序列也是我们在日常数据分析中经常遇到 的。时间序列的应用其实是非常广泛的,它不仅在股票分析方面起着决定性的作用,同时,它在气象学,尤其研究过去的气候变化来推出未来的气候变化方面是起到 非常大的作用。甚至,在考古学方面,也需要通过处理时间序列来确定某样出土的物品是处在怎样的一个历史时期。
      在R语言当中,也有很多的函数是处理时间、日期方面的数据。在讲这些函数之前,我们先看看R语言的时间序列当中,都涉及到了哪些参数:
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      毫无疑问,我们在处理日期的时候,都还是涉及年月日以及周比较多。这份参数表中,周和月都有其缩写的版本,也有全写的版本。这里,我也不再花额外的时间把里面的内容翻译成中文。
      现在,我们要输入一段含有时间字符串的向量,并且从中提取相应的时间序列,这时,我们可以用as.Date()函数来实现这样的操作。具体代码和结果如下:

      1. d<-c("1984-07-07","1977-11-05")

      2. as.Date(d)

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      当然,你也可以自行设定格式输出时间序列,下面,我来举这样的一个实例:

      1. d1<-c("01/03/1970","03/12/1988")

      2. dates<-as.Date(d1,"%m/%d/%Y")

      3. dates

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列
      这里,我们原本输入的时间序列是月/日/年,而输出量的时候,系统函数返回了年/月/日的形式。当然,我们也可以自己设定相关的日期格式,相关实例如下:

      1. myformat <- "%m/%d/%y"

      2. leadership$date <- as.Date(leadership$date, myformat)

      3. leadership

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      其实,在原来的数据框当中,其日期序列算是比较接近我们常用的表达形式了。
      接下来,我讲一讲如何在R语言中得到系统时间。其实,我们刚开始 学习编程语言的时候,尤其是Java和C++都经常有所提到。在R语言当中,也有可以调用系统内置时间的函数。今天,我们要接触到的则是 Sys.Date()和date()函数。我们分别对这两个函数进行帮助文档的查阅:
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      我们从它们的帮助文档分别获知,Sys.Date()返回的是当前的时区和日期,而Sys.time()返回的则是当前时区的具体时间,即除了日 期,还有当天的具体时间。date()函数是返回日期的字符串形式。当然,Sys.Date()函数的用法还很多,接下来,我还有继续对这样的一个函数进 行讲解。
      其实,我们还可以控制Sys.Date()函数的输出格式,以及,我们想要输出什么样的时间。不妨看看下面的这个实例:

      1. today<-Sys.Date()

      2. format(today,format="%b %d% %Y %a")

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      在这个实例中,我们先用Sys.Date()函数获取当前的时间,而今天的日期就是2016年4月28日,也就是星期四。当然,我们也可以只单独展示其中一种日期,比如,我们只通过输入一个参数来输出一个时间,具体如下:

      1. format(today,format="%A")

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      从上面两个实例,我们不难看到format()这个函数对于时间序列格式输出的设定是有很大的帮助的。所以,以后如果要处理时间序列,并且想要设定输出的格式,我们都可以用format()这样的一个函数。我们不妨也查看一下format()函数的帮助文档:
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      大家都看到了,format的帮助文档是有这么多的内容,当然,常用到的参数还是x、width、digits等等;而帮助文档的具体内容,大家就自行理解就好了。
      接下来,我们还可以运用上述的函数来计算两个时间点相差多少天。这时,我们采用as.Date()函数来获得其日期,并直接进行加减运算。

      1. today<-as.Date("2016-04-28")

      2. past<-as.Date("1984-07-07")

      3. days<-today-past

      4. days

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      这里,我们算出从1984年7月7日到今天,也就是2016年4月28日相差了11618天。当然,我们还可以使用difftime()函数进行上面的运算,得:

      1. today<-as.Date("2016-04-28")

      2. past<-as.Date("1984-07-07")

      3. days<-today-past

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      这里,我们得到同样的结果。
      接下来,关于difftime()函数,我还是稍微在这里介绍一下。我们还是先查阅一下difftime()函数的帮助文档:
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列
      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      这里,我们看到在difftime()里,我们把两个不同的时间点填到difftime()的前面,并且后面可以带一个tz时区参数,具体tz参数 可以点击time zone,然后会自动链接到time zone的帮助文档。后面,我们看一看units参数,它给出了auto、sec、mins等等一系列描述时间的参数,到时,你可以根据你的需求算什么类 型的时间差。当然,你也可以事先给units()函数赋值,然后再把它传到difftime()函数里面。其它的参数大家可以自行了解。
      接下来,我们看一看difftime()的实例:

      1. today<-Sys.Date()  #今天的日期

      2. dob <- as.Date("1977-07-28")

      3. difftime(today, dob, units="weeks") #计算周数差

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      1. today<-Sys.Date()  #今天的日期

      2. dob <- as.Date("1979-08-23")

      3. difftime(today, dob, units="auto") #与units=days一样

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      以上是关于difftime()函数的两个实例,其它的话,自己可以尝试一下计算别的东西。
      最后,补充一下,如果你想把时间序列转换成字符串类型,你可以直接as.character()函数即可。比如,我们可以把现在的是转换成字符串格式:

      1. as.character(Sys.time())

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列

      刚好,写到这的时间是北京时间2016年4月28日21:01。

      严禁修改,可以转载,请注明出自数据人网和原文链接。


      今日数据人网精选推荐:

      《“高大上”的 Monte Carlo Simulations》

      点击【阅读原文】,即刻阅读精选!

      数据人网是数据人学习、交流和分享的平台http://shujuren.org,专注于从数据中学习。

      数据人网官方微信公众号:数据科学自媒体

      【R读书笔记】R语言读书心得5-数据管理(2)-时间序列


      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      【R读书笔记】R语言读书心得4-初级数据管理(1)
      2016年6月2日

      下一篇文章

      【数据人网】端午节安康
      2016年6月9日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?