首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个基于POSIXlt时间的因素?

创建一个基于POSIXlt时间的因素?
EN

Stack Overflow用户
提问于 2012-11-16 17:21:30
回答 1查看 196关注 0票数 1

我目前正在处理存储在数据帧中的数据,时间在一列中。我得把一整天分成几个时段。到目前为止,我是根据全天候来做这件事的。

代码语言:javascript
复制
workingdata <- read.csv(filename)
workingdata$dateI <- as.POSIXlt(workingdata$dateI,format="%Y-%m-%d %H:%M:%S")
workingdata$hourI <- workingdata$dateI$hour
workingdata$shift <- cut(workingdata$hourI, breaks=c(0,6,13,23),
                         labels=c("morning","midday","evening"),
                         include.lowest=TRUE,right=TRUE)

这很好,并创建了三个层次的因素- morning小时从0:00到6:59,midday从7:00到13:59,evening从14:00到23:59。

现在,我想做类似的事情,但是使用基于分钟/秒的裁剪,例如midday11:34:12开始。是否有一种完全基于POSIXlt的剪裁的方法?什么是最好的方法?

编辑:--我尝试过将指定为POSIXlt对象,但它似乎总是包含日期,所以这不是我想要的.

代码语言:javascript
复制
> brk<-as.POSIXlt("11:34:12",format="%H:%M:%S")
> brk
[1] "2012-11-16 11:34:12"
EN

回答 1

Stack Overflow用户

发布于 2012-11-16 20:47:54

您可以计算您的数据与您的数据来源的一天开始之间的差异,并将它们与您的截止点进行比较。

代码语言:javascript
复制
foo <- as.POSIXlt(runif(100,min=0,max=1000009),origin="2012-01-01")
bar <- rep(NA,length(foo))
morning <- 
    foo-as.POSIXlt(paste(1900+foo$year,"-",1+foo$mon,"-",foo$mday,sep=""))<
    11*60+34+12/60
bar[morning] <- "morning"

中午和晚班,把bar变成一个因素,留给读者做练习;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13421387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档