楼主: lanhong1993
1412 9

[程序分享] 求助!时间格式如何转换? [推广有奖]

  • 1关注
  • 1粉丝

博士生

54%

还不是VIP/贵宾

-

威望
0
论坛币
2701 个
通用积分
3.4261
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
12167 点
帖子
214
精华
0
在线时间
141 小时
注册时间
2016-11-1
最后登录
2024-3-26

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
微信图片_20170330143256.png

如图,这是我从SAS里面导出的数据,时间格式变成了这样,还带有月份的英文缩写。如何用R转换成2001-11-23 19:20:34这种格式呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:英文缩写 如何用 格式变 如何

沙发
Eric1028 发表于 2017-3-30 16:04:16 来自手机 |只看作者 |坛友微信交流群
lanhong1993 发表于 2017-3-30 14:37
如图,这是我从SAS里面导出的数据,时间格式变成了这样,还带有月份的英文缩写。如何用R转换成2001-11- ...
試試看lubridate

使用道具

藤椅
johnmy 发表于 2017-3-31 03:33:15 |只看作者 |坛友微信交流群
你应该把SAS和R两个数据都贴出来,这样才能看出来正确应该显示成什么。
好好看看lubridate包

使用道具

板凳
lanhong1993 发表于 2017-3-31 10:00:28 |只看作者 |坛友微信交流群
johnmy 发表于 2017-3-31 03:33
你应该把SAS和R两个数据都贴出来,这样才能看出来正确应该显示成什么。
好好看看lubridate包
是这样的。原始数据集有30G,我想从原始数据集中提取部分数据。但是文件太大,无法导入R,但能导入SAS。我就请人用SAS帮我提取了那部分数据。原始的时间格式是2001-11-23 19:20:34这样的,但是导出后就变成像图中那样的了,月份变成了英文缩写。这种格式时间无法进行比较,所以才会提出这样的问题。

使用道具

报纸
铿锵绿色 发表于 2017-3-31 10:22:32 |只看作者 |坛友微信交流群
chartime那一列能看懂月份, 小时,分钟,和秒,看不懂年份和日期在哪,如果能够看出年份和日期的规律就比较好转化成R的时间格式了,下面是一个小例子:
z <- strptime("20/2/06 11:16:16.683", "%d/%m/%y %H:%M:%OS")
z

使用道具

地板
johnmy 发表于 2017-3-31 11:43:19 |只看作者 |坛友微信交流群
铿锵绿色 发表于 2017-3-31 10:22
chartime那一列能看懂月份, 小时,分钟,和秒,看不懂年份和日期在哪,如果能够看出年份和日期的规律就比较 ...
确实如此,看不到规律

使用道具

7
johnmy 发表于 2017-3-31 11:44:04 |只看作者 |坛友微信交流群
lanhong1993 发表于 2017-3-31 10:00
是这样的。原始数据集有30G,我想从原始数据集中提取部分数据。但是文件太大,无法导入R,但能导入SAS。我 ...
你可以只贴部分数据啊

使用道具

8
lanhong1993 发表于 2017-3-31 11:45:13 |只看作者 |坛友微信交流群
铿锵绿色 发表于 2017-3-31 10:22
chartime那一列能看懂月份, 小时,分钟,和秒,看不懂年份和日期在哪,如果能够看出年份和日期的规律就比较 ...
> wbc1$CHARTTIME<-strptime(wbc1$CHARTTIME,"%d%b%y:%H:%M:%OS")

> wbc1$CHARTTIME<-strptime(as.character(wbc1$CHARTTIME),"%d%b%y:%H:%M:%OS")

> mode(wbc1$CHARTTIME)
[1] "list"

试了这种方法后,都变成了缺失值。这是为什么?看了下CHARTTIME的属性是“list”,是这个原因么?

使用道具

9
铿锵绿色 发表于 2017-3-31 16:42:39 |只看作者 |坛友微信交流群
lanhong1993 发表于 2017-3-31 11:45
> wbc1$CHARTTIME wbc1$CHARTTIME mode(wbc1$CHARTTIME)
[1] "list"
解决这个问题的关键在于把年份和日期转化成R可以识别的格式,现在的格式看不懂,R无法识别

使用道具

10
铿锵绿色 发表于 2017-3-31 17:19:43 |只看作者 |坛友微信交流群
铿锵绿色 发表于 2017-3-31 16:42
解决这个问题的关键在于把年份和日期转化成R可以识别的格式,现在的格式看不懂,R无法识别
D <- c("21MAR29:15:30:00", "23SEP63:11:15:00")
strptime(D, format = "%d%b%y:%H:%M:%S")
上面这个可以识别出一一部分,但是年份是错误的。
关于你说的list的问题,估计是文件的问题,需要你上传一部分源文件,才有可能解决

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 23:03