R sorts a vector on its own accord

后端 未结 4 933
误落风尘
误落风尘 2021-01-01 21:45
df.sorted <- c(\"binned_walker1_1.grd\", \"binned_walker1_2.grd\", \"binned_walker1_3.grd\",
    \"binned_walker1_4.grd\", \"binned_walker1_5.grd\", \"binned_walk         


        
4条回答
  •  情书的邮戳
    2021-01-01 22:19

    construct it as an ordered factor:

    > df.new <- ordered(df.sorted,levels=df.sorted)
    > order(df.new)
     [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 ...
    

    EDIT :

    After @DWins comment, I want to add that it is even not nessecary to make it an ordered factor, just a factor is enough if you give the right order of levels :

    >     df.new2 <- factor(df.sorted,levels=df.sorted)
    >     order(df.new)
     [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 ...
    

    The difference will be noticeable when you use those factors in a regression analysis, they can be treated differently. The advantage of ordered factors is that they let you use comparison operators as < and >. This makes life sometimes a lot easier.

    > df.new2[5] < df.new2[10]
    [1] NA
    Warning message:
    In Ops.factor(df.new[5], df.new[10]) : < not meaningful for factors
    
    > df.new[5] < df.new[10]
    [1] TRUE
    

提交回复
热议问题