R 将POSIXct转换回因子

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

我已经将一个时间列表转换成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”的原子 你在名单上打过“排序”吗?
它不起作用的原因是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"