将因子转换为 R 中的日期/时间

2024-01-01

这是我的数据框中包含的信息:

## minuteofday: factor w/ 89501 levels "2013-06-01 08:07:00",...
## dDdt: num 7.8564 2.318 ...
## minutes: POSIXlt, format: NA NA NA

我需要将一天中的分钟列转换为日期/时间格式:

minuteave$minutes <- as.POSIXlt(as.character(minuteave$minuteofday), format="%m/%d/%Y %H:%M:%S")

我试过了as.POSIXlt, as.POSIXct and as.Date。这些都不起作用。有人有想法吗。

目标是绘制分钟与 dDdt 的关系,但它不允许我在我想要作为一个因素的指定时间段内绘制。我不知道接下来要尝试什么......


您需要插入一个as.character()在解析为日期时间或日期之前。

一个因素总是首先返回与其级别相对应的数字。

您可以通过告诉保存从因子到字符的转换read.csv()等没有商店作为一个因素:stringsAsFactors=FALSE。您还可以将其设置为全局选项。

一旦你将其作为角色,请确保你将格式字符串与您的数据相匹配:

R> as.POSIXct("2013-06-01 08:07:00", format="%Y-%m-%d %H:%M:%S")
[1] "2013-06-01 08:07:00 CDT"
R> 

请注意%Y-%m-%d我用过,而不是你的%m/%d/%y.

2016 年 1 月 3 日编辑:由于有了anytime https://cran.r-project.org/package=anytime包可以自动从多种类型转换,包括factor,并且这样做不需要格式字符串.

R> as.factor("2013-06-01 08:07:00")
[1] 2013-06-01 08:07:00
Levels: 2013-06-01 08:07:00
R> 
R> library(anytime)
R> anytime(as.factor("2013-06-01 08:07:00"))
[1] "2013-06-01 08:07:00 CDT"
R> 
R> class(anytime(as.factor("2013-06-01 08:07:00")))
[1] "POSIXct" "POSIXt" 
R> 

正如你所看到的,我们只是将因子变量输入anytime()并输出所需的 POSIXct 类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将因子转换为 R 中的日期/时间 的相关文章

随机推荐