【问题标题】:Sort columns of a dataframe by column name as Date按列名对数据框的列进行排序为日期
【发布时间】:2018-03-18 08:48:12
【问题描述】:

问题link处理了类似的问题 我有日期作为列名的数据框。

test = data.frame("01-Apr-16" = c(0, 2, 4, 7, 8), 
                  "01-Jan-16" = c(4, 2, 4, 7, 8), 
                  "01-Dec-16" = c(1, 3, 8, 3, 2))

我已将日期转换为相应的数字格式

new_names = apply(data.frame(names(test)), 1, function(x) as.Date(strptime(x,format = "%d-%b-%y")))
colnames(test) = new_names  

test[ , order(names(test))] 提供的解决方案不起作用。 有没有有效的解决问题的办法。

我已从外部 .csv 文件中读取数据框,该文件保留了列名中日期的原始格式。

【问题讨论】:

    标签: r sorting date dataframe


    【解决方案1】:

    你不需要apply

    i1 <- as.Date(names(test), format = 'X%d.%b.%y')
    test[order(i1)]
    

    给出,

      X01.Jan.16 X01.Apr.16 X01.Dec.16
    1          4          0          1
    2          2          2          3
    3          4          4          8
    4          7          7          3
    5          8          8          2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多