【问题标题】:How to order factor levels using POSIXct variable?如何使用 POSIXct 变量排序因子水平?
【发布时间】:2017-05-15 23:28:14
【问题描述】:

我有一个这样的数据集

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 包进行此操作。

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以根据'dt'的order指定'var'的levels

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

    根据例子,'dt'已经是ordered,所以它不会改变'var'的levels的order

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 2022-10-07
      相关资源
      最近更新 更多