2016-06-10 2 views
1

rbind()을 사용하여 데이터 프레임을 작성하여 동일한 행 이름의 데이터 프레임을 두 개 추가했습니다. 그런 다음 알파벳 순서로 요소 수준을 정렬하려면 order() 함수를 사용하려고합니다. 그러나 여전히 데이터 프레임을 두 개의 개별 객체로 처리하고 첫 번째를 알파벳 순으로 정렬 한 다음 두 번째를 알파벳 순으로 정렬합니다.주문 함수는 부분적으로 데이터 프레임을 부분적으로 재정렬합니다.

예 :

df1 <- data.frame(site=c("A", "F", "C")) 

df2 <- data.frame(site=c("B", "G", "D")) 

new.df <- rbind(df1, df2) 

new.df <- new.df[order(new.df$site),] 

결과 :

site 
A 
C 
F 
B 
D 
G 

내가 패키지 dplyr에서 arrange 기능을 사용하여 예를 들어, 데이터를 재정렬하는 다른 방법 살펴 보았다, 그러나 어떤 성공을 없었어요. 이 문제를 해결하는 방법에 대한 제안?

도움을 주시면 감사하겠습니다. 예상대로

df1 <- data.frame(site=c("A", "F", "C"), stringsAsFactors = FALSE) 
df2 <- data.frame(site=c("B", "G", "D"), stringsAsFactors = FALSE) 

에 의한 요인 감사

답변

0

피 생성은 다음 나머지 재료는 작동합니다.

+0

감사합니다. @Uwe 블록, 완벽하게 작동했습니다. –

+0

@ M.Hilton 저는 내 대답이 유용하다는 것을 알고 기쁘게 생각합니다. 제 대답을 수락 하시겠습니까? 확인 표시 왼쪽? 고맙습니다. – Uwe

0

내가 생각하기에 당신이 생각하고있는 것처럼 보이지 않습니다. 결과로 나온 new.df는 더 이상 데이터 프레임이 아닙니다. 이것은 중요한 요소입니다. order의 결과는 인자의 레벨 순서대로 놓는 것입니다. (levels(new.df$site)을 참조하십시오.) 그래서 만약 당신이 정말로 이것을 (예를 들어, 문자 벡터가 아닌 요소로) 유지하고자한다면, . 첫째

new.df$site <- factor(new.df$site, levels = sort(levels(new.df$site))) 
new.df[order(new.df$site), ] 
[1] A B C D F G 
Levels: A B C D F G 

를 레벨 순서를하지만 당신이 정말로 그것을 처음부터 요인이 될 필요가없는, 나는에 그것을 설정, 가장 필요한 경우 @Uwe 블록, 제안 무엇을 할 것을 권고 할 것이라고 생각합니다 당신이 rbind을 사용하고 분류를 마친 후에 요인

관련 문제