【2017年整理】R学习-日期处理

上传人:豆浆 文档编号:993116 上传时间:2017-05-24 格式:DOCX 页数:3 大小:14.35KB
返回 下载 相关 举报
【2017年整理】R学习-日期处理_第1页
第1页 / 共3页
【2017年整理】R学习-日期处理_第2页
第2页 / 共3页
【2017年整理】R学习-日期处理_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《【2017年整理】R学习-日期处理》由会员分享,可在线阅读,更多相关《【2017年整理】R学习-日期处理(3页珍藏版)》请在金锄头文库上搜索。

1、计算工作天数:一、计算单个日期 a a1 星期日 星期六 test test1 2015-01-01 2015-01-02 2015-01-03 2015-01-04 2015-01-056 2015-01-06 2015-01-07 2015-01-08 2015-01-09 2015-01-1011 2015-01-11 2015-01-12 2015-01-13 2015-01-14 2015-01-1516 2015-01-16 2015-01-17 2015-01-18 2015-01-19 2015-01-2021 2015-01-21 2015-01-22 2015-01-23

2、length(testunlist(lapply(test,function(x) all(weekdays(x)!=a)1 17二、计算数据框向量日期#读入数据方法一:setwd(C:/Users/jiguang.liao.RONGXIANG/Desktop)mydatas-read.table(C:/Users/jiguang.liao.RONGXIANG/Desktop/date20150205.csv,header=TRUE,sep=,stringsAsFactors = F)#读入数据方法二:install.packages(plyr)library(plyr)mydatas - r

3、ead.table(clipboard, header= T, stringsAsFactors = F)mydatasnames(mydatas) - c(id,s_time,e_time)#对数据进行整理study-custmydata-studymydata-transform(mydata,startdate=lastjydate,enddate= as.Date(2015-02-26)new_data - transform(mydata, startdate= as.Date(ifelse(is.na(mydatas$lastjydate), as.character(mydata

4、s$ActivateOpenDate), as.character(mydatas$lastjydate)#向量处理时间间隔install.packages(plyr)library(plyr)函数一:diff_time - function(x, y ) if(x = y ) return (1)elsea - seq(as.Date(x), as.Date(y), day) b - c(星期六, 星期日)length(aunlist(lapply(a, function(x)all(weekdays(x) != b) new_mydatas - ddply(mydatas, .(id),

5、transform, days= diff_time(s_time, e_time)new_mydatas函数二:运行时间更少library(plyr)new_diff - function(x, y,lation)# lation 代表是否要计算开始和结束日期到工作日中,1 表示 2 个都回计算到工作日中,0 表示只# 计算开始或结束的一天,-1 表示开始结束时间都不算new_x - as.Date(x) #初始化日期new_y - as.Date(y) #初始化日期if(x= y) #排除 日期相等return(1)while(weekdays(new_x)!= 星期一) #获取开始日期的

6、下一个星期一new_x - new_x + 1while(weekdays(new_y)!= 星期一) #获取结束日期的下一个星期一new_y - new_y + 1 if(new_y- new_x)=0) value - -2+(new_x- as.Date(x)- (new_y- as.Date(y)+lationreturn(value)elseweek_diff - (new_y- new_x)/7 # 计算相差周数value - week_diff*(7-2)+(new_x- as.Date(x)- (new_y- as.Date(y)+lationreturn(value)new_mydatas2 - ddply(new_data1, .(customerid), transform, days= new_diff(startdate, enddate,1)new_mydatas21:10,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号