首页 文章

将月和日合并为一个日期列

提问于
浏览
8

使用R,我想组合成两个不同列中包含的月份nb(月份)和nb(day)的一列(日期),并以日期格式使用创建的列 .

我的数据框看起来像这样:

St Dep Month Day
A 2 1 1
B 2 1 1
B 2 2 1
A 5 1 1
A 7 1 1
C 2 1 1
C 5 1 1

我想添加一个类似“Jan-01”的列 .

2 回答

  • 9

    试试这个...

    df <- data.frame( Month = sample(1:12 , 10 , repl = TRUE ) , Day = sample(1:30 , 10 , repl = TRUE ) )
    df$Date <- as.Date( paste( df$Month , df$Day , sep = "." )  , format = "%m.%d" )
    
    df
    #      Month Day       Date
    #   1      1   8 2013-01-08
    #   2      1  17 2013-01-17
    #   3      7  23 2013-07-23
    #   4     11  21 2013-11-21
    #   5      3  30 2013-03-30
    #   6     12  15 2013-12-15
    #   7      2  30       <NA>
    #   8      7  10 2013-07-10
    #   9      1  16 2013-01-16
    #   10     8   1 2013-08-01
    

    我得到了一些NAs,因为我编写了随机日期,其中一些不存在,例如2月30日

  • 10

    我在这里假设“日期格式”只是指一个看起来像日期的字符串,而不是R中的正确日期类 .

    data <- data.frame( Month=c(1,5,2), Day=c(1,2,3) )
    data$MonthDay <- paste( month.abb[data$Month], data$Day, sep="-" )
    data
    #   Month Day MonthDay
    # 1     1   1    Jan-1
    # 2     5   2    May-2
    # 3     2   3    Feb-3
    

相关问题