2013-06-27 3 views
4

좋아, 나는 어리 석음이 많다. How to sort a dataframe by column(s)?의 유용한 아이디어를 읽었지만 힌트가 하나 더 필요합니다. 임의의 수의 열이있는 행렬을 사용하고 모든 열을 순서대로 정렬하는 함수가 필요합니다. 예를 들어 행렬 fooN 열인 경우 은 foo[order(foo[,1],foo[,2],...foo[,N]),]과 같습니다. with 또는 by 구조를 사용하여 기쁘게 생각하고 필요하다면 내 매트릭스의 colnames을 정의하십시오. 그러나 인수 모음을 order (또는 with)으로 자동화하는 방법을 알아낼 수 없습니다. 또는 나는 paste으로 전체 피 묻은 끈을 만들었고 그 다음에 call을 만들 수는 있지만 더 간단한 방법이 있다고 확신합니다.모든 열을 기준으로 행렬을 정렬하는 방법

답변

8

가장 우아한 데이터 프레임으로 바꿀 및 do.call 사용하는 것입니다 방법 ("우아한"의 특정 값) :

foo[do.call(order, as.data.frame(foo)), ] 

이 데이터 프레임은 단지 변수의 list입니다 작동하기 때문에 일부 관련 속성이 있으며 list을 기대하는 함수에 전달할 수 있습니다.

+0

고마워요! 나는'do.call'을 가지고 해치 우고 데이터 프레임에 강요하는 것을 잊어 버렸다. –

관련 문제