gpt4 book ai didi

r - 按R中的所有列对数据框进行排序

转载 作者:行者123 更新时间:2023-12-02 01:07:39 25 4
gpt4 key购买 nike

对于具有任意列数的任意矩阵或数据帧x,我想这样做:

x=x[order(x[,1], x[,2], ..., x[,ncol(x)]),]

也就是说,我想按第一列排序,然后按第二列排序,...,然后按最后一列排序。关于排序的扩展讨论here似乎不包含解决方案。这是我的解决方案,它违反了 fortune(106):

sortarray = function(x){
k = ncol(x)
com = paste("x = x[order(x[,", paste(1:k, collapse = "],x[,"), "]),]", sep = "")
eval(parse(text = com))
return(x)}

x = sortarray(x)

这似乎工作正常,但有没有更简洁的方法?

编辑重复数据删除说明:这个问题不同于它的 suggested duplicate以一种重要的方式(至少对我而言)。上一个问题处理的是您明确声明要作为排序依据的列的情况。在我的例子中,我希望自动选择列(具体来说,所有列),而不是我必须在排序命令中输入每个列名。与上一个问题的任何答案不同,下面的答案解决了我的问题。

最佳答案

x[do.call(order, x), ]

尝试执行

example(order)

在 R 提示下。

之前在这里问过的问题:

How to sort a dataframe by column(s)?

关于r - 按R中的所有列对数据框进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com