ell*_*11e 14 r date posixct posixlt r-factor
这是我的数据框中包含的信息:
## minuteofday: factor w/ 89501 levels "2013-06-01 08:07:00",...
## dDdt: num 7.8564 2.318 ...
## minutes: POSIXlt, format: NA NA NA
Run Code Online (Sandbox Code Playgroud)
我需要将分钟列转换为日期/时间格式:
minuteave$minutes <- as.POSIXlt(as.character(minuteave$minuteofday), format="%m/%d/%Y %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
我试过了as.POSIXlt
,as.POSIXct
而且as.Date
.这些都没有奏效.有人有想法吗.
目标是绘制分钟与dDdt的关系,但它不会让我在指定的时间段内绘制我想要的因素.我不知道接下来该尝试什么...
Dir*_*tel 21
您需要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>
Run Code Online (Sandbox Code Playgroud)
注意%Y-%m-%d
我使用的,而不是你的%m/%d/%y
.
编辑于2016年1月3日:由于随时可以自动转换多种类型的软件包(包括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>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我们只需将因子变量输入anytime()
和输出所需的POSIXct类型.
试试这个
library(lubridate)
minuteave$minutes <- ymd_hms(minuteave$minutes)
这将返回minave $ minutes作为POSIXct对象.
希望这对你有所帮助.