R语言中时间格式使用总结

原文地址:http://blog.sina.com.cn/s/blog_7d8326290102w0rl.html


对于时间格式方面处理,每种语言多有自己的特定的函数或者类来处理,SAS里面依赖于put、input 、putn()、intnx、intck、today()等函数来处理,python里面主要依赖于time和datetime两个包,java里面SimpleDateFormat、Date、Calendar、System等类处理;mysql中的较于简单,下面说说R软件里面时间格式处理:


(1)获取当前日期有两个函数一个是Sys.Date(),另外一个是Sys.time(),获得向前向后的时间

 t<-Sys.time()
 t
[1] "2015-09-22 18:53:56 CST"
t是一种长整形的数据自1970-01-01年开始,用unclass()函数得到,时间单位是秒
> unclass(t)
[1] 1442919236

获取一个小时前的日期
as.POSIXlt(t-3600)
[1] "2015-09-22 17:42:36 CST"
获取一天前的日期
as.POSIXlt(t-24*60*60)[1] "2015-09-21 18:42:36 CST"
同理可以可以到前20天,前20天,前一年的数据,方法比较灵活

将长整形的数据转换为日期型数据,这种方式感觉是借鉴java的,具体做法如下:
 t<-Sys.time()
as.POSIXct(unclass(t),origin="1970-01-01") #要从1970-01-01年开始 [1] "2015-09-22 18:53:56CST"

(2)自定义时间格式
 t<-Sys.time()
> t
[1] "2015-09-22 19:19:54 CST"

 format(t,format="%Y-%m-%d")
[1] "2015-09-22"

format(t,format="%B-%d-%Y")[1] "九月-22-2015"
format(t,format="%a-%d-%Y")[1] "周二-22-2015"
format(t,format="%A-%d-%Y")[1] "星期二-22-2015"
format(t,format="%b-%d-%Y")[1] "九月-22-2015"
诸如这种形式,%d代表0-31、%a代表周几,%A代表星期,%m代表月份0-12,%b代表月份,%B代表月份


(3)计算时间差

> today<-Sys.time() > today [1] "2015-09-22 19:27:03CST"

> dob<-as.Date("2014-9-22")
> difftime(today,dob,units = "days")
Time difference of 365.4771 days

difftime(today,dob,units= "weeks")
Time difference of 52.21102 weeks

units可以是“auto”, “secs”, “mins”, “hours”, “days”, “weeks”其中的一个


(4)获得等差时间序列
指定起始日期:
start<-as.Date("2015-01-01")> end<-as.Date("2015-09-22") > seq(from=start,to=end,by=1)[1] "2015-01-01" "2015-01-02" "2015-01-03" "2015-01-04""2015-01-05" "2015-01-06" [7] "2015-01-07""2015-0。。。。。。

指定长度:
seq(from=start,by=1,length.out= 10) [1] "2015-01-01" "2015-01-02" "2015-01-03" "2015-01-04""2015-01-05" "2015-01-06" [7] "2015-01-07" "2015-01-08""2015-01-09" "2015-01-10"

也可以用as.Date():
as.Date(0:10,origin="2015-09-10")
[1]"2015-09-10" "2015-09-11" "2015-09-12" "2015-09-13" "2015-09-14""2015-09-15" [7] "2015-09-16" "2015-09-17" "2015-09-18""2015-09-19" "2015-09-20"


要创建自己的时间格式,最好配合paste和 as.character()来处理
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用R语言求生存时间的位数,可以使用survival包的survfit()函数和survMedian()函数来完成。 首先,我们需要准备一个生存时间数据集。假设我们的数据集名为"survival_data",包含两列数据:"time"表示生存时间,"status"表示生存状态(1表示存活,0表示死亡)。 接下来,我们可以使用survfit()函数创建一个生存时间对象,它可以用来计算生存曲线和其他生存分析统计量。代码如下: ```R # 导入survival包 library(survival) # 创建生存时间对象 surv_obj <- survfit(Surv(time, status) ~ 1, data = survival_data) ``` 上述代码,Surv()函数用于指定生存时间和生存状态变量,"~ 1"表示不考虑其他因素,只计算整体的生存曲线。 接下来,我们可以使用survMedian()函数来计算生存时间的位数。代码如下: ```R # 计算生存时间的位数 median_surv_time <- survMedian(surv_obj) ``` 上述代码,surv_obj是我们之前创建的生存时间对象。计算结果将存储在median_surv_time变量。 最后,我们可以打印出生存时间的位数。代码如下: ```R # 打印生存时间的位数 print(median_surv_time) ``` 上述代码将打印生存时间的位数值。 总结起来,要使用R语言求生存时间的位数,需要导入survival包,创建生存时间对象,使用survMedian()函数计算位数,然后打印结果。以上就是一个简单的例子。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值