수준

2017-02-03 14 views
-2

에게 순서를 변경하는 방법은 다음과 같은 dataframe 있습니다수준

  Accession Order 
1   CP000517 7 
2   CP002081 8 
3   CP002427 9 
4   CP002429 10 
5 CP002430_plasmid 11 
6   CP003799 12 
7   CP009907 13 
8 CP009908_plasmid 14 
9   CP011386 15 
10   CP
11   CP016827 17 
12    One 3 
13  One_plasmid 4 
14    Two 5 
15  Two_plasmid 6 
16   Three 1 
17 Three_plasmid 2 

지금 내가 열 "주문"에 따라 순서를 갖고 싶어합니다. 또한 "수탁"의 수준은 우리는 단지 사용할 필요가

+1

그냥 할'DF2 <- DF1 [순서 (DF1의 $ 주문)]' – akrun

+0

이 이미 시도,하지만 첫 번째 열 (rownumbers가) 따라 변경되지 않음) – Michael

+0

내가 자동으로 변경 다른 방법으로 업데이트되었습니다. – akrun

답변

1

...이 레벨 순서를 가져야 order

df2 <- df1[order(df1$Order),] 
row.names(df2) <- NULL 
df2$Accession <- factor(df2$Accession, levels = unique(df2$Accession)) 

또는 사용 tidyverse

library(dplyr) 
df1 %>% 
    arrange(Order) %>% 
    mutate(Accession = factor(Accession, levels = unique(Accession))) 

또는 사용 data.table

library(data.table) 
setDT(df1)[order(Order)][, Accession := actor(Accession, levels = unique(Accession))]