Eco*_*Tom 2 r vector dataframe
我认为这应该很简单,但我找不到办法做到这一点。
我想根据一个因素重新排序数据帧。到目前为止我能找到的所有答案都提供了逻辑排序,但这是任意的,并且是数字和字母的混合。也许这是一个问题,因为它factor不是vector? 但是对于向量的答案似乎也没有任何作用。
任何建议将不胜感激!
示例数据(注意;此数据仅用于此问题,在我的真实代码中,数据框是其他一些计算的输出,因此我不能在一开始就将名称更改为合理的名称)
DATA<- data.frame(This=c("120", "60", "90", "OG"), That=c(453, 679,12,252))
DATA
This That
1 120 453
2 60 679
3 90 12
4 OG 252
Run Code Online (Sandbox Code Playgroud)
我想按 60 - 90 - 120 - OG 的顺序对其进行排序,即
This That
1 60 679
2 90 12
3 120 453
4 OG 252
Run Code Online (Sandbox Code Playgroud)
编辑:这不是一个重复的问题。如上所述,在下面的评论中,排序是任意的。字典排序假设行名称是相互关联的,但这里并非如此。我可以标记行("unicorn", "18.1", "TREES", "234234235")并希望它们按顺序排列("234234235", "unicorn", "TREES", "18.1")
您可以使用factor变量调整顺序,如下所示:
DATA$This <- factor(DATA$This, levels=c("60", "90", "120", "OG"))
Run Code Online (Sandbox Code Playgroud)
请注意,这不会更改标签值:
DATA
This That
1 120 453
2 60 679
3 90 12
4 OG 252
Run Code Online (Sandbox Code Playgroud)
但它会更改映射到这些标签的底层整数,以便您可以根据需要对数据进行排序:
DATA[order(DATA$This),]
This That
2 60 679
3 90 12
1 120 453
4 OG 252
Run Code Online (Sandbox Code Playgroud)