2017-01-01 69 views
1

我有一個數據集,這樣如何使用POSIXct變量來訂購因子水平?

library(forcats) 
g <- data.frame(var = as.factor(c("C", "B", "A")), 
     dt = as.POSIXct(c("2016-01-01 00:02:20","2016-02-01 00:03:43", "2016-03-01 10:00:00"), format = "%Y-%m-%d %H:%M:%S", tz = "UTC") 
     ) 

我試圖陶醉基於DT字段中的數據,但我得到一個錯誤:

fct_relevel(g$var, order(g$dt)) 

> fct_relevel(g$var, order(g$dt)) 
[1] C B A 
Levels: A B C 
Warning message: 
Unknown levels in `f`: 1, 2, 3 
> 

如何解決這個問題?我想爲這個操作使用forcats軟件包。

回答

1

我們可以指定基於基於示例「DT」

with(g, fct_relevel(var, levels(var)[order(dt)])) 
#[1] C B A 
#Levels: A B C 

order「變種」的levels,「DT」已經order版,所以它不會改變orderlevel的'var'的s。