2017-10-06 16 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)) 

は、私は解決策がtest[ , order(names(test))]が著作ない提供

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

対応する番号の形式に日付を変換しています。 問題を効率的に解決できますか?

私は外部の.csvファイルからデータフレームを読み込みました。これは、列名に日付の元の形式を保持しています。あなたがapplyする必要はありません

答えて

2

、与え

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 
関連する問題