Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R对每个主题中的行重新排序_R_Dataset - Fatal编程技术网

使用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

查看更多关于多列订购的详细信息。

谢谢!这是一个非常简洁的解决方案。