【问题标题】:Converting day of week from integer to character string in R在R中将星期几从整数转换为字符串
【发布时间】:2015-10-21 15:13:29
【问题描述】:

我有一个数据集,其中包含事件的星期几作为数字(1-7,1 是星期一...7 是星期日)。我已将其转换为用户可以理解的星期几(星期一、星期二等),只需将 1 的每个实例替换为该行中的星期一(等)即可。有没有图书馆可以更干净地为我做这件事?

【问题讨论】:

    标签: r


    【解决方案1】:
    set.seed(42)
    x <- sample(1:7, 20, TRUE)
    #[1] 7 7 3 6 5 4 6 1 5 5 4 6 7 2 4 7 7 1 4 4
    y <- factor(x, labels = c("Monday", "Tuesday", 
                              "Wednesday", "Thursday", 
                              "Friday", "Saturday", "Sunday"),
                ordered = TRUE)
    # [1] Sunday    Sunday    Wednesday Saturday  Friday    Thursday  Saturday  Monday    Friday    Friday    Thursday  Saturday  Sunday   
    #[14] Tuesday   Thursday  Sunday    Sunday    Monday    Thursday  Thursday 
    #Levels: Monday < Tuesday < Wednesday < Thursday < Friday < Saturday < Sunday
    

    如果您不想要有序因子,请省略 ordered = TRUE,如果您需要字符向量,请使用 as.character。如果你需要后者,你也可以这样做:

    c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")[x]
    

    【讨论】:

    • 在我发布之前没有看到您的完整帖子。
    【解决方案2】:
    library(chron)
    days = sample(1:7, 10, replace = TRUE)
    
    weekdays(days + 3, abbreviate = FALSE)
    

    从星期五开始索引,因此+3 将索引设置为星期一。输出是一个有序因子,非常适合绘图。

    【讨论】:

    • weekdays 函数不是这样工作的。这与某些包的功能不同吗?
    • 糟糕,被lubridate 掩盖了——我的错。
    • 好吧,显然它来自一个名为 chron 的库。不知道那是怎么进来的。。谢谢
    • 是的 - 现在刚刚检查以确保环境干净
    • 似乎不再起作用了,Error: 'weekdays' is not an exported object from 'namespace:chron'。 :(
    猜你喜欢
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2013-08-16
    • 1970-01-01
    • 2016-05-21
    • 2016-12-23
    相关资源
    最近更新 更多