2017-10-06 174 views
0

在問題中處理了類似問題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文件中讀取數據幀,該文件在列名中保留了日期的原始格式。

回答

2

你不需要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 
相關問題