在R中创建按多个列排序的函数

时间:2016-02-17 04:30:51

标签: r function sorting

我无法弄清楚如何在R中创建一个按多列排序的函数,其中一列是传递变量。以下是我到目前为止的代码......

sorter <- function(df, col)
{
    df <- df[order(df[, col], "ColC", "ColD"), ]
}

sorter(mdf, 2)

其中mdf =我的数据框,2 =我希望排序的列号。

我希望它能做到这一点:

ColA     ColB    ColC    ColD
Bob      41      84      95
Jane     41      77      100
Sam      35      84      100
Jeff     41      84      100

把它变成这个:

ColA     ColB    ColC    ColD
Sam      35      84      100
Jane     41      77      100
Bob      41      84      95
Jeff     41      84      100

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你可以尝试,

sorter <- function(df, col)
{
 return(df[order(df[, col]), ])
}

sorter(df, 2)
#ColA ColB ColC ColD
#3  Sam   35   84  100
#1  Bob   41   84   95
#2 Jane   41   77  100
#4 Jeff   41   84  100


sorter(df, 3)
#ColA ColB ColC ColD
#2 Jane   41   77  100
#1  Bob   41   84   95
#3  Sam   35   84  100
#4 Jeff   41   84  100