Для произвольной матрицы или dataframe x
с любым числом столбцов, что я хочу сделать это:Сортировка dataframe ВСЕХ столбцов в R
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 важным (по крайней мере, для меня). Предыдущий вопрос касается ситуации, в которой вы явно указываете столбцы, которые хотите отсортировать. В моем случае я хочу, чтобы столбцы были выбраны автоматически (в частности, все из них), вместо того, чтобы мне вводить каждое имя столбца в команде заказа. Ответ ниже решил мою проблему, в отличие от любого ответа на предыдущий вопрос.
Кажется, о код-обзора. http://codereview.stackexchange.com/ – m59