首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

项目中遇到的时间型数据处理问题

先介绍一下《R语言实战》中关于时间型数据的处理。

时间型数据通常以字符串的形式输入到R中,然后转化为以数值形式存储的时间型变量,as.Date(x,"input_format")。input_format是读取时间型数据的格式:

%d 表示日期(0-31)

%a 缩写的星期名(如Mon)

%A 完整的星期名(如Monday)

%m 月份(01-12)

%b 缩写的月份(Jan)

%B 完整的月份(January)

%y 两位数的年份(如12)

%Y 四位数的年份(如2012)

date

进入今天的主题。我在做项目中通常会在R中将xlsx数据转换为csv数据,因为R读取excel数据太慢且容易出错。但是呢,今天遇到的时间型数据很不规范,有文本型的如2012-12-10,有日期型的如2013/12/11。将xlsx转换为csv中,文本型的还是2012-12-10这种形式,日期型的就变成40678这种形式(这是距离1899年12月30日的天数),class一下这两种形式的数据,都是character字符型jian。而我需要提取时间型数据的年,季度,需要的是2012-12-10这种形式,数据形式的不统一就很难处理。

我的总数据量是3万多条,解决思路是:利用grepl函数提取2012-12-30这种形式数据所在的行数作为part1,40678这种形式及NA数据所在行作为part2,part1和part2分别处理,再rbind为一个数据集。

####处理用药时间

##data_raw$用药结束日期

a

part1

part2

##格式正确part1

part1$用药结束日期

part1$year

part1$qtr

part1$year_q

##格式需处理的part2

a

b

part2$用药结束日期

part2$year

part2$qtr

part2$year_q

data_raw

write.csv(data_raw,"合并数据.csv")

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180123G0SIUY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券