更改矩阵/数据框中的行顺序
我需要更改/反转数据框中的行,不是转置数据,而是将底部行移动到顶部等等。如果数据框是:
1 2 3
4 5 6
7 8 9
我需要转换为
7 8 9
4 5 6
1 2 3
我已经阅读过 sort()
但我认为这不是我需要的,或者我无法找到方法。
I need to change/invert rows in my data frame, not transposing the data but moving the bottom row to the top and so on. If the data frame was:
1 2 3
4 5 6
7 8 9
I need to convert to
7 8 9
4 5 6
1 2 3
I've read about sort()
but I don't think it is what I need or I'm not able to find the way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
可能有更优雅的方法,但这是可行的:
这是可行的,因为您正在使用相反的整数序列作为行索引来索引矩阵。
nrow(m):1
结果为3 2 1
。There probably are more elegant ways, but this works:
This works because you are indexing the matrix with a reversed sequence of integers as the row index.
nrow(m):1
results in3 2 1
.您可以使用 dplyr 包反转 data.frame 的顺序:
或者不使用管道运算符,方法是
You can reverse the order of a data.frame using the
dplyr
package:Or without using the pipe-operator by doing
我会沿着这条线反转以行数开头的索引的行
I would reverse the rows an index starting with the number of rows, along this line
我认为这是最简单的方法:
如果你想反转列,只需这样做
I think this is the simplest way:
If you want to reverse the columns, just do
我们可以反转 row.names 的顺序(仅适用于 data.frame):
We can reverse the order of row.names (for data.frame only):
很晚了,但这似乎工作得很快,不需要任何额外的包,而且很简单:
我想,为了频繁使用,人们会用它来做一个函数。
使用 R v=3.3.1 进行测试。
Veeery late, but this seems to be working fast, does not need any extra packages and is simple:
I guess that for frequent use, one would make a function out of it.
Tested with R v=3.3.1.
今天遇到这个问题,在这里我为您提供另一种解决方案。
Encounter this problem today and here I am providing another solution for your interests.