我无法弄清楚如何在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
非常感谢任何帮助!
答案 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