使用R对每个主题中的行重新排序
我在处理数据集中行的重新排序时遇到了问题使用R对每个主题中的行重新排序,r,dataset,R,Dataset,我在处理数据集中行的重新排序时遇到了问题 >df ID TAG TIME READ1 READ2 1 0 0 NA NA 1 1 0 0.0 NA 1 0 0 NA 1.0 1 0 1 0.5 NA 1 1 2 NA NA 1 0 2.1 1.5 2.5 2 0 0 NA
>df
ID TAG TIME READ1 READ2
1 0 0 NA NA
1 1 0 0.0 NA
1 0 0 NA 1.0
1 0 1 0.5 NA
1 1 2 NA NA
1 0 2.1 1.5 2.5
2 0 0 NA NA
2 1 0 0.0 NA
2 0 0 NA 1.5
2 0 1 0.5 NA
2 1 1.5 NA NA
2 0 2.5 2.0 2.9
我的目标是按每个ID对数据集进行排序,并将第一个标记为1的行放在第一个ID上。所有其他行将按时间排序。结果应该是:
>df1
ID TAG TIME READ1 READ2
1 1 0 0.0 NA
1 0 0 NA NA
1 0 0 NA 1.0
1 0 1 0.5 NA
1 1 2 NA NA
1 0 2.1 1.5 2.5
2 1 0 0.0 NA
2 0 0 NA NA
2 0 0 NA 1.5
2 0 1 0.5 NA
2 1 1.5 NA NA
2 0 2.5 2.0 2.9
您将按ID升序,然后按时间升序,然后按标记降序。这可以通过以下方式实现:
df[order(df$ID, df$TIME, -df$TAG),]
# ID TAG TIME READ1 READ2
# 2 1 1 0.0 0.0 NA
# 1 1 0 0.0 NA NA
# 3 1 0 0.0 NA 1.0
# 4 1 0 1.0 0.5 NA
# 5 1 1 2.0 NA NA
# 6 1 0 2.1 1.5 2.5
# 8 2 1 0.0 0.0 NA
# 7 2 0 0.0 NA NA
# 9 2 0 0.0 NA 1.5
# 10 2 0 1.0 0.5 NA
# 11 2 1 1.5 NA NA
# 12 2 0 2.5 2.0 2.9
查看更多关于多列订购的详细信息。谢谢!这是一个非常简洁的解决方案。