我有一个矩阵,它有两列,格式如下:
1 349
1 393
1 392
4 459
3 49
3 32
2 94我希望根据第一列对此矩阵进行升序排序,但我希望将相应的值保留在第二列中。
输出将如下所示:
1 349
1 393
1 392
2 94
3 49
3 32
4 459发布于 2013-01-16 21:40:40
读取数据:
foo <- read.table(text="1 349
1 393
1 392
4 459
3 49
3 32
2 94")和排序:
foo[order(foo$V1),]这依赖于这样一个事实,即order保持关系的原始顺序。参见?order。
发布于 2013-01-16 22:46:21
使用key=V1创建data.table会自动为您完成此操作。使用斯蒂芬的data foo
> require(data.table)
> foo.dt <- data.table(foo, key="V1")
> foo.dt
V1 V2
1: 1 349
2: 1 393
3: 1 392
4: 2 94
5: 3 49
6: 3 32
7: 4 459发布于 2017-05-02 17:30:35
请注意,如果您希望值的顺序相反,您可以很容易地这样做:
> example = matrix(c(1,1,1,4,3,3,2,349,393,392,459,49,32,94), ncol = 2)
> example[order(example[,1], decreasing = TRUE),]
[,1] [,2]
[1,] 4 459
[2,] 3 49
[3,] 3 32
[4,] 2 94
[5,] 1 349
[6,] 1 393
[7,] 1 392https://stackoverflow.com/questions/14359726
复制相似问题