Сортировать фрейм данных по символам в R

У меня есть кадр данных (код), и я хочу отсортировать его в соответствии с combName в числовом порядке.

> code
# A tibble: 1,108 x 2
   combName sumLength
   <chr>        <dbl>
 1 20-1          8.05
 2 20-10        14.7 
 3 20-100       21.2 
 4 20-101       17.6 
 5 20-102       25.4 
 6 20-103       46.3 
 7 20-104       68.7 
 8 20-105       24.3 
 9 20-106       46.3 
10 20-107       14.0 
# ... with 1,098 more rows

После этого левый столбец должен выглядеть так:

> code
# A tibble: 1,108 x 2
   combName sumLength
   <chr>        <dbl>
 1 20-1          8.05
 2 20-2          ...
 3 20-3          ...
 4 20-4          ...
 5 20-5          ...
...
10 20-10        14.7 
# ... with 1,098 more rows

Не знаю, что я могу сделать, чтобы достичь этого формата.


person Etiende    schedule 18.11.2020    source источник


Ответы (1)


Это работает:

library(dplyr)
library(tidyr)
df
# A tibble: 10 x 2
   combName sumLength
   <chr>        <dbl>
 1 20-102       25.4 
 2 20-100       21.2 
 3 20-101       17.6 
 4 20-105       24.3 
 5 20-10        14.7 
 6 20-103       46.3 
 7 20-104       68.7 
 8 20-1          8.05
 9 20-106       46.3 
10 20-107       14   
df %>% separate(combName, into = c('1','2'), sep = '-', remove = F) %>% 
type.convert(as.is = T) %>% arrange(`1`,`2`) %>% select(-c(`1`,`2`))
# A tibble: 10 x 2
   combName sumLength
   <chr>        <dbl>
 1 20-1          8.05
 2 20-10        14.7 
 3 20-100       21.2 
 4 20-101       17.6 
 5 20-102       25.4 
 6 20-103       46.3 
 7 20-104       68.7 
 8 20-105       24.3 
 9 20-106       46.3 
10 20-107       14   
person Karthik S    schedule 18.11.2020