楼主: 楚湘斜云
1591 4

[问答] Date Values中的日期格式问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

57%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
229 点
帖子
21
精华
0
在线时间
23 小时
注册时间
2013-6-3
最后登录
2019-12-17

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在设置时间格式时,遇到这么个问题,代码如下:
  1. date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/09")
  2. format<-"%m/%d/%y"
  3. datetest<-as.Date(date,format)
  4. datetest
复制代码
结果显示:[1] "2008-10-24" "2008-10-28" "2008-10-01" "2008-10-12" "2009-05-01"
但是根据书上说的,%y是2位年份,%Y才是四位年份啊,于是我又试着把%y改成%Y,如下:
  1. date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/09")
  2. format<-"%m/%d/%Y"
  3. datetest<-as.Date(date,format)
  4. datetest
复制代码
结果更神奇了:[1] "0008-10-24" "0008-10-28" "0008-10-01" "0008-10-12" "0009-05-01"
请问这是怎么回事啊?
二维码

扫码加我 拉你入群

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

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

关键词:values value date alue ATE Values

沙发
楚湘斜云 发表于 2016-4-13 22:23:38 |只看作者 |坛友微信交流群
自问自答,刚才好像才醒悟过来,as.Date(date,"input_format")中input_format其实应该对应的是date中的日期格式,我之前把它理解成转化后的date格式了……不过这样的话,还有一个疑惑,就是系统在判别年份的时候好像会出错,比如说:
  1. date <- c("10/24/98", "10/28/65", "10/1/08", "10/12/08", "5/1/09")
  2. format<-"%m/%d/%y"
  3. datetest<-as.Date(date,format)
  4. datetest
复制代码
其实这里前两个日期想表达的是1998-10-24和1965-10-28,但结果显示为:
[1] "1998-10-24" "2065-10-28" "2008-10-01" "2008-10-12" "2009-05-01"

第二个就变成了2065,请问这种情况该怎么处理呢?

使用道具

藤椅
小沸羊羊 发表于 2016-4-13 22:44:39 来自手机 |只看作者 |坛友微信交流群
楚湘斜云 发表于 2016-4-13 22:23
自问自答,刚才好像才醒悟过来,as.Date(date,&quot;input_format&quot;)中input_format其实应该对应的是date中的日期 ...
R里面的日期是从1970.1.1开始的~~~
已有 2 人评分论坛币 学术水平 收起 理由
楚湘斜云 + 1 观点有启发
jiangbeilu + 10 观点有启发

总评分: 论坛币 + 10  学术水平 + 1   查看全部评分

使用道具

板凳
jiangbeilu 学生认证  发表于 2016-4-14 07:41:39 |只看作者 |坛友微信交流群
楚湘斜云 发表于 2016-4-13 22:23
自问自答,刚才好像才醒悟过来,as.Date(date,"input_format")中input_format其实应该对应的是date中的日期 ...
如果时间跨度太大,最好不要用简写的日期,
如果没有办法,可以先提取拆分成年月日,然后按照一定的规则,对年份进行处理,比如两位数年份大于16的,就在前面加上19,如果在0-16之间的,就加20.如此可行。
已有 1 人评分学术水平 收起 理由
楚湘斜云 + 1 观点有启发

总评分: 学术水平 + 1   查看全部评分

使用道具

报纸
楚湘斜云 发表于 2016-4-15 22:00:14 |只看作者 |坛友微信交流群
jiangbeilu 发表于 2016-4-14 07:41
如果时间跨度太大,最好不要用简写的日期,
如果没有办法,可以先提取拆分成年月日,然后按照一定的规则 ...
soga~THX!

使用道具

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

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

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

GMT+8, 2024-11-5 14:59