r - Custom sorting of dataframe by column with duplicates -


i wanted ask help, because having difficulties ordering table, because column table ordered has duplicates (coltoorder). tiny part of table. desired order custom, speaking, based on order of first column, except first value (887).

text<-"col1 col2 col3 coltoorder 895     2    1374  887 888     2      14  887 1018    3    1065  895 896     2     307  895 889     2       4  888 891     2       8  888 1055    2     971 1018 926     3     241  896 1021    2      87 1018 897     2      64  896" mytable<-read.table(text=text, header = t) mytable 

desired order

myindex<-c(887,895,888,1018,896) # equivalent myindex2<-c(887,887,895,895,888,888,1018,1018,896,896) 

some failed attemps

try1<-mytable[match(myindex, mytable$coltoorder),] try2<-mytable[match(myindex2, mytable$coltoorder),] try3<-mytable[mytable$coltoorder %in% myindex,] try3<-mytable[myindex %in% mytable$coltoorder,] try4<-mytable[myindex2 %in% mytable$coltoorder,] rownames(mytable) <- mytable$coltoorder # error 

it seems coltoorder should treated categorically, not numerically. factors have order of levels, we'll convert factor levels ordered according myindex. ordering "baked in" column , can use order on it.

mytable$coltoorder = factor(mytable$coltoorder, levels = myindex) mytable[order(mytable$coltoorder), ] #     col1 col2 col3 coltoorder # 8    895    2 1374        887 # 1    888    2   14        887 # 131 1018    3 1065        895 # 9    896    2  307        895 # 2    889    2    4        888 # 4    891    2    8        888 # 168 1055    2  971       1018 # 134 1021    2   87       1018 # 39   926    3  241        896 # 10   897    2   64        896 

do careful - column factor not numeric. if want recover numeric values factor, need convert via character: original_values = as.numeric(as.character(mytable$coltoorder)).


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -