按列名对数据框的列进行排序为日期
Posted
技术标签:
【中文标题】按列名对数据框的列进行排序为日期【英文标题】: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 文件中读取数据框,该文件保留了列名中日期的原始格式。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于按列名对数据框的列进行排序为日期的主要内容,如果未能解决你的问题,请参考以下文章