楼主: Davidhust
5775 3

[问答] R日期变量的导入问题 [推广有奖]

讲师

66%

还不是VIP/贵宾

-

威望
0
论坛币
604 个
通用积分
1.0600
学术水平
16 点
热心指数
16 点
信用等级
15 点
经验
18568 点
帖子
494
精华
0
在线时间
616 小时
注册时间
2009-10-6
最后登录
2024-4-23

5论坛币
    从csv导入到R中时,数据里面包含有日期列,但是导入到R后,就变成了字符串,无法进行日期变量的计算,请问我该如何处理这个问题,导入时或导入后有没有什么方法?谢谢!
导入后数据是这个样子的(日期列包含了日期和时间):
ID 日期
1 141711 2003-02-20 18:39:14
2 159830 2003-01-01 00:00:00
3 209880 2003-01-01 00:00:00
4 258373 2003-01-01 00:00:00
5 265045 2003-01-01 00:00:00


我也用了as.date()函数,x$date<-as.date(x$日期),得到的是NA



最佳答案

kiddbai 查看完整内容

首先,这个函数应该是as.Date(),不是as.date(),R对大小写敏感! 同时,你的数据格式是很工整的,可以直接用as.Date()或者as.POSIXlt()来转换,前者省略后面的具体时间,后者完整表现时间。如果还有问题,请把问题描述得更细致一些,包括给出更多原始数据形态。
关键词:日期变量 date 什么方法 ATE 字符串 如何 字符串
沙发
kiddbai 发表于 2011-11-9 15:03:45 |只看作者 |坛友微信交流群
首先,这个函数应该是as.Date(),不是as.date(),R对大小写敏感!

同时,你的数据格式是很工整的,可以直接用as.Date()或者as.POSIXlt()来转换,前者省略后面的具体时间,后者完整表现时间。
  1. > date1 <- c('2008-03-17 12:33:45','2009-09-18 18:16:56','2010-12-03 09:35:11')
  2. > date2 <- as.Date(c('2008-03-17 12:33:45','2009-09-18 18:16:56','2010-12-03 09:35:11'))
  3. > date3 <- as.POSIXlt(c('2008-03-17 12:33:45','2009-09-18 18:16:56','2010-12-03 09:35:11'))
  4. > class(date1)
  5. [1] "character"
  6. > class(date2)
  7. [1] "Date"
  8. > class(date3)
  9. [1] "POSIXlt" "POSIXt"
  10. > date2[2]-date2[1]
  11. Time difference of 550 days
  12. > date3[2]-date3[1]
  13. Time difference of 550.2383 days
复制代码
如果还有问题,请把问题描述得更细致一些,包括给出更多原始数据形态。
已有 3 人评分经验 学术水平 热心指数 信用等级 收起 理由
guo.bailing + 100 + 5 + 5 + 5 热心帮助其他会员
shenbaiseshatan + 1 + 1 好的意见建议
qoiqpwqr + 20 + 1 热心帮助其他会员

总评分: 经验 + 120  学术水平 + 6  热心指数 + 7  信用等级 + 5   查看全部评分

使用道具

藤椅
shenbaiseshatan 在职认证  发表于 2011-11-10 05:56:10 |只看作者 |坛友微信交流群
kiddbai 发表于 2011-11-9 15:38
首先,这个函数应该是as.Date(),不是as.date(),R对大小写敏感!

同时,你的数据格式是很工整的,可以直 ...
楼上的真有耐心
胜人者有力,自胜者强!

使用道具

板凳
与梦齐飞 在职认证  发表于 2011-11-24 10:44:52 |只看作者 |坛友微信交流群
路过~

使用道具

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

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

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

GMT+8, 2024-5-29 11:04