首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R函数time()来自包chron奇怪的格式

R函数time()来自包chron奇怪的格式
EN

Stack Overflow用户
提问于 2018-09-07 21:02:06
回答 1查看 37关注 0票数 1

使用来自chron包的times函数的非常简单的操作"times(3/24)“将导致:

代码语言:javascript
复制
> times(3/24)  
[1] 03:00:00

当我在数据帧中使用它时,它不会导致正确的格式。取而代之的是,它将原始数字写成"0.125“。但是,当我将它包含在ifelse()语句中时,它可以工作。

请参见示例:

代码语言:javascript
复制
> X<-seq(1,10,1)  
> tdata<-as.data.frame(X)  
> tdata$T3AM<-times(3/24)  
> tdata$T3AMx<-times(ifelse(tdata$X>0,3/24,3/24))  
> tdata  
    X  T3AM    T3AMx  
1   1 0.125 03:00:00  
2   2 0.125 03:00:00  
3   3 0.125 03:00:00  
4   4 0.125 03:00:00  
5   5 0.125 03:00:00  
6   6 0.125 03:00:00  
7   7 0.125 03:00:00  
8   8 0.125 03:00:00  
9   9 0.125 03:00:00  
10 10 0.125 03:00:00    

对此有什么解释吗?

EN

回答 1

Stack Overflow用户

发布于 2018-09-07 21:50:19

问题是chron中的"times"类没有提供rep方法。如果我们添加一个,那么它就可以工作。

代码语言:javascript
复制
library(chron)
rep.times <- function(x, ...) times(rep(as.numeric(x), ...))

# from question:    
X <- seq(1,10,1)
tdata <- as.data.frame(X)
tdata$T3AM <- times(3/24)
tdata$T3AMx <- times(ifelse(tdata$X>0,3/24,3/24))

给予:

代码语言:javascript
复制
> tdata  
    X     T3AM    T3AMx
1   1 03:00:00 03:00:00
2   2 03:00:00 03:00:00
3   3 03:00:00 03:00:00
4   4 03:00:00 03:00:00
5   5 03:00:00 03:00:00
6   6 03:00:00 03:00:00
7   7 03:00:00 03:00:00
8   8 03:00:00 03:00:00
9   9 03:00:00 03:00:00
10 10 03:00:00 03:00:00

请注意,Kurt刚刚将rep.times添加到chron2.3-53,它现在应该在CRAN上。

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

https://stackoverflow.com/questions/52223157

复制
相关文章

相似问题

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