日期处理
1、取出当前日期
Sys.Date() [1] "2014-10-29" date() #注意:这种方法返回的是字符串类型 [1] "Wed Oct 29 20:36:07 2014"
2、在R中日期实际是double类型,是从1970年1月1日以来的天数
typeof(Sys.Date()) [1] "double"
3、转换为日期
用as.Date()可以将一个字符串转换为日期值,默认格式是yyyy-mm-dd。
as.Date("2007-02-01") #得到"2007-02-01",显示为字符串,但实际是用double存储的 as.double(as.Date("1970-01-01")) #结果为0,是从1970年1月1日以来的天数。 #可以把定制的日期字符串转换为日期型 as.Date("2007年2月1日", "%Y年%m月%d日") [1] "2007-02-01"
格式 |
意义 |
%Y |
年份,以四位数字表示,2007 |
%m |
月份,以数字形式表示,从01到12 |
%d |
月份中当的天数,从01到31 |
|
|
%b |
月份,缩写,Feb |
%B |
月份,完整的月份名,指英文,February |
%y |
年份,以二位数字表示,07 |
4、把日期值输出为字符串
today <- Sys.Date() format(today, "%Y年%m月%d日") [1] "2014年10月29日"
5、计算日期差
由于日期内部是用double存储的天数,所以是可以相减的。
today <- Sys.Date() gtd <- as.Date("2011-07-01") #我是从2011年7月开始实践Get Things Done(GTD)的 today - gtd Time difference of 1216 days
原来我到今天为止已经实践GTD有1216天了。
用difftime()函数可以计算相关的秒数、分钟数、小时数、天数、周数
difftime(today, gtd, units="weeks") #还可以是“secs”, “mins”, “hours”, “days” Time difference of 173.7143 weeks
继续用R语言解决一个我的实际问题:统计fitbit计步器中的数据并绘图
# 读入CSV格式的fitbit统计数据 fitbit <- read.csv("fitbit.csv") # 日期要转换一下 fitbit$date <- as.Date(fitbit$date, "%Y年%m月%d日") # 画图,只画线 plot(fitbit$date, fitbit$step, type="l")
# 只统计八月的运动情况
fitbit8 <- fitbit[months(fitbit$date)=="八月", ] plot(fitbit8$date, fitbit8$step, type="l")
posted on 2016-03-23 14:16 MartinChau 阅读(154) 评论(0) 编辑 收藏 举报