【问题标题】:Assign index values on dates in Excel在 Excel 中为日期分配索引值
【发布时间】:2019-11-08 07:06:23
【问题描述】:

我有一个看似容易解决的问题,但我真的卡住了!我有一组日期,我的目标是为这些日期分配一个索引值。具体来说,我希望每年的每个月都有一个唯一的索引值。为了可视化我想要做什么,我有以下日期,你可以看到 96 年 1 月的值为 1,96 年 2 月为 2,96 年 3 月为 3,依此类推。注:从 1996 年到 2018 年也有很多年,这意味着 1997 年 1 月在指数中应该有值 13。

Date         Index
01/01/1996    1
02/01/1996    1
03/01/1996    1
04/01/1996    1
05/01/1996    1
08/01/1996    1
01/02/1996    2
02/02/1996    2
05/02/1996    2
06/02/1996    2
07/02/1996    2
08/02/1996    2
09/02/1996    2 
01/03/1996    3
04/03/1996    3
05/03/1996    3
06/03/1996    3
07/03/1996    3
08/03/1996    3
11/03/1996    3

我正在尝试在 R 或 Excel 中实现这一目标。

【问题讨论】:

    标签: r excel date indexing


    【解决方案1】:

    假设您在 R 中读取日期并且它们的类型为 character 而不是 Date,这将起作用:

    mydf$index2 <- as.numeric(as.factor(substring(mydf$Date, 4)))
    mydf
    #         Date Index Index2
    #1  01/01/1996     1      1
    #2  02/01/1996     1      1
    #3  03/01/1996     1      1
    #4  04/01/1996     1      1
    #5  05/01/1996     1      1
    #6  08/01/1996     1      1
    #7  01/02/1996     2      2
    #8  02/02/1996     2      2
    #9  05/02/1996     2      2
    #10 06/02/1996     2      2
    #11 07/02/1996     2      2
    #12 08/02/1996     2      2
    #13 09/02/1996     2      2
    #14 01/03/1996     3      3
    #15 04/03/1996     3      3
    #16 05/03/1996     3      3
    #17 06/03/1996     3      3
    #18 07/03/1996     3      3
    #19 08/03/1996     3      3
    #20 11/03/1996     3      3
    

    mydf 是您的 data.frame 名称。在上面的代码中,我将日期子集化以提取月份和年份,然后转换为因子,然后转换为创建索引的数字。

    【讨论】:

    • 即将与as.integer(factor(format(as.Date(df$Date, "%d/%m/%Y"), "%m-%Y"))) 发帖。我认为将其转换为 Date 类也不应该是一个问题,对吧?
    • 如果你转换它根本不是问题:P,有很多方法可以解决这个问题。
    • 它不会为我生成这些索引。 > 头(Hmerominies) [1] “1996-01-01” “1996-01-02” “1996-01-03” “1996-01-04” “1996-01-05” “1996-01-08”我有以下内容: > class(Hmerominies) [1] "character" > head(as.numeric(as.factor(substring(Hmerominies, 4)))) [1] 2080 2081 2082 2083 2084 2087 它必须是不同的格式!
    • 是的,你的日期正好相反。试试:mydf$Index2 &lt;- as.numeric(as.factor(substr(Hmerominies, 1, 7)))
    • 这在 R 中有效,基于 Ronak Shah 的评论:as.integer(factor(format(as.Date(sp.dat$Dates, "%Y/%m/%d"), "%Y-%m")))
    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 2017-05-14
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多