R 将POSIXct转换回因子
我已经将一个时间列表转换成POSIXct格式,现在我需要将它们转换回因子,但我不能。我如何解决这个问题 > data [1] "2015-12-01 09:14:24 EST" "2015-12-01 17:51:47 EST" "2015-12-02 08:50:52 EST" "2015-12-02 09:38:45 EST" [5] "2015-12-06 02:30:46 EST" "2015-12-06 14:02:22 EST" > as.factor(data) Error in sort.list(y) : 'x' must be atomic for 'sort.list' Have you called 'sort' on a list? >资料 [1] “2015-12-01 09:14:24 EST”“2015-12-01 17:51:47 EST”“2015-12-02 08:50:52 EST”“2015-12-02 09:38:45 EST” [5] “2015-12-06 02:30:46东部时间”“2015-12-06 14:02:22东部时间” >as.系数(数据) sort.list(y)中出错:“x”必须是“sort.list”的原子 你在名单上打过“排序”吗?R 将POSIXct转换回因子,r,posixct,R,Posixct,我已经将一个时间列表转换成POSIXct格式,现在我需要将它们转换回因子,但我不能。我如何解决这个问题 > data [1] "2015-12-01 09:14:24 EST" "2015-12-01 17:51:47 EST" "2015-12-02 08:50:52 EST" "2015-12-02 09:38:45 EST" [5] "2015-12-06 02:30:46 EST" "2015-12-06 14:02:22 EST" > as.factor(data) Error in
它不起作用的原因是OP有一个
POSIXlt
类对象。它是一个列表
,调用因子
将导致错误
as.factor(as.POSIXlt(v1))
#Error in sort.list(y) : 'x' must be atomic for 'sort.list'
#Have you called 'sort' on a list?
但是,如果它是POSIXct
对象,它就可以工作
as.factor(as.POSIXct(v1))
#[1] 2015-12-01 09:14:24
#Levels: 2015-12-01 09:14:24
我们可以将它转换为POSIXct,然后它就可以工作了
as.factor(as.POSIXct(as.POSIXlt(v1)))
#[1] 2015-12-01 09:14:24
#Levels: 2015-12-01 09:14:24
我们可以使用class
或str
class(as.POSIXct(v1))
#[1] "POSIXct" "POSIXt"
class(as.POSIXlt(v1))
#[1] "POSIXlt" "POSIXt"
数据
这很有效<代码>系数(如POSIXct(“2015-12-01 09:14:24美国东部时间”)。您能否在问题中提供dput(head(data))
?
v1 <- "2015-12-01 09:14:24"