我在R中有这个,我希望将每个ID号彼此相邻,然后按日期排序,最后按时间排序......这可能吗?
ID Val Date Time
1 1 0.7 1/13/2013 12:00
2 2 1.6 1/13/2013 12:00
3 3 0.5 1/13/2013 12:00
4 4 2.1 1/13/2013 12:00
5 5 1.2 1/13/2013 12:00
6 1 1.0 1/13/2013 13:00
7 2 1.1 1/13/2013 13:00
8 3 0.9 1/13/2013 13:00
9 4 2.4 1/13/2013 13:00
10 5 0.8 1/13/2013 13:00
答案 0 :(得分:6)
order
可以采取多个参数来做到这一点:
df <- read.table(text="ID Val Date Time
1 1 0.7 1/13/2013 12:00
2 2 1.6 1/13/2013 12:00
3 3 0.5 1/13/2013 12:00
4 4 2.1 1/13/2013 12:00
5 5 1.2 1/13/2013 12:00
6 1 1.0 1/13/2013 13:00
7 2 1.1 1/13/2013 13:00
8 3 0.9 1/13/2013 13:00
9 4 2.4 1/13/2013 13:00
10 5 0.8 1/13/2013 13:00",header=TRUE)
df[with(df,order(ID,Date,Time)),]
请注意,我尚未将Date
和Time
转换为适当的时间类,这样可以提供更好的结果。
答案 1 :(得分:4)
orderBy
是另一种选择:
> library(doBy)
> orderBy(~ID+Date+Time, data=DF)