如果我有这个数据框A:
A:
1 date X Y
2 1948-01-01 0 0
3 1948-01-10 0 0
4 1948-01-11 0 0
5 1948-01-12 0 0
6 1948-01-13 0 0
7 1948-01-14 0 0
8 1948-01-15 0 0
9 1948-01-16 0 0
10 1948-01-17 0 0
11 1948-01-18 0 0
12 1948-01-19 0 0
13 1948-01-02 0 0
14 1948-01-20 0 0
15 1948-01-21 0 0
我需要对日期进行排序,以确保日期顺序。获取此信息:
A:
1 date X Y
2 1948-01-01 0 0
1948-01-02 0 0
1948-01-03 0 0
1948-01-04 0 0
1948-01-05 0 0
1948-01-06 0 0
1948-01-07 0 0
1948-01-08 0 0
1948-01-09 0 0
3 1948-01-10 0 0
4 1948-01-11 0 0
5 1948-01-12 0 0
6 1948-01-13 0 0
7 1948-01-14 0 0
8 1948-01-15 0 0
9 1948-01-16 0 0
10 1948-01-17 0 0
11 1948-01-18 0 0
12 1948-01-19 0 0
14 1948-01-20 0 0
15 1948-01-21 0 0
我正在尝试这个功能:
A[order(as.Date(A$date,format="%y-%m-%d")),]
但是没有工作,关于如何解决它的任何想法?
答案 0 :(得分:0)
尝试使用
A[order(as.Date(A$date, format = "%Y-%m-%d")), ]
(注意“%Y”的大写字母)
答案 1 :(得分:-1)
我不确定这是否是世界上最优雅的解决方案,但它应该有效:
tt <- A$date
tt2 <- data.frame(ord = c(1:length(tt)),matrix(as.numeric(unlist(strsplit(tt,"-"))),ncol=3,nrow=length(tt),byrow=T))
tt2 <- tt2[order(tt2$X3,tt2$X2,tt2$X1),]
A <- A[tt2$ord,]