这是我的数据框中包含的信息:
## 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(使用前将#替换为@)