搜索
查看: 55|回复: 0

[R] 第12章 1-2节

[复制链接]

17

主题

21

帖子

182

积分

注册会员

Rank: 2

积分
182
发表于 2018-10-9 20:42:23 | 显示全部楼层 |阅读模式
# chaper12
[AppleScript] 纯文本查看 复制代码
library(tidyverse)

library(lubridate)

library(nycflights13)


# 获取当前日期或时间
[AppleScript] 纯文本查看 复制代码
today()

now()


# 创建时间或日期的三种方法
#1 字符串
[AppleScript] 纯文本查看 复制代码
ymd("2017-01-31")

dmy("1st January, 2017")
#月份简写和全写等价,如Jan和January
# 创建日期时间型数据,在日期函数后添加一个下划线,以及h、m、s中的一个或多个字母
ymd_hms("2017-1-31 20:11:58")# 时区变为了UTC,不知道为啥,好像也不是代理的原因
# 通过添加时区参数,可以将一个日期强制转换为日期时间
[AppleScript] 纯文本查看 复制代码
ymd(20170131,tz = "UTC")

?ymd


#2 日期时间的各个成分
[AppleScript] 纯文本查看 复制代码
flights %>%

  select(year,month,day,hour,minute)

# 使用make_date()创建日期,使用make_datetime()创建日期时间
[AppleScript] 纯文本查看 复制代码
flights %>%

  select(year,month,day,hour,minute) %>%

  mutate(

    departure = make_datetime(year,month,day,hour,minute)

  )



make_datetime_100 <- function(year,month,day,time){

  make_datetime(year,month,day,time%/% 100,time %% 100)

}



flights_dt <- flights %>%

  filter(!is.na(dep_time),!is.na(arr_time)) %>%

  mutate(

    dep_time = make_datetime_100(year,month,day,dep_time),

    arr_time = make_datetime_100(year,month,day,arr_time),

    sched_dep_time = make_datetime_100(

      year,month,day,sched_dep_time

    ),

    sched_arr_time = make_datetime_100(

      year,month,day,sched_arr_time

    )

  ) %>%

  select(origin,dest,ends_with("delay"),ends_with("time"))

View(flights_dt)


# visulization
[AppleScript] 纯文本查看 复制代码
flights_dt %>%

  ggplot(aes(dep_time))+

  geom_freqpoly(binwidth = 86400) # 86400s = 1day


# 现有的日期时间对象
# 转换日期时间型数据和日期型数据
# as_datetime()和 as_date()
[AppleScript] 纯文本查看 复制代码
as_datetime(today())

as_datetime(now())

as_date(now())

as_date(today())


# 练习
# 如果解析包含无效日起的一个字符串,会发生什么情况
ymd("2010-10-10","banana")# 字符串无法读取,返回NA

# today()函数中的tzone参数的作用是什么?为何重要
?today
# a character vector specifying which time zone you would like to find the
# current date of. tzone defaults to the system time zone set on your computer.

# 使用恰当的lubridate函数来解析一下每个日期
d1 <- "January 1,2010"
mdy(d1)
d2 <- "2015-Mar-07"
ymd(d2)
d3 <- "06-Jun-2017"
dmy(d3)
d4 <- c("August 19(2015)","July 1 (2015)")
d4
mdy(d4)
d5 <- "12/30/14"
mdy(d5)





上一篇:&lt;R for Data Science&gt; 读书笔记2 | 第三章: 数据转换 [dplyr package]
下一篇:癌症组织与癌旁组织的T细胞受体差异过大正常吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2018-10-24 01:18 , Processed in 0.132437 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.