У меня есть фрейм данных, который выглядит следующим образом:
df <- data.frame(Name = c("BB", "AA", "AA", "BB", "DD", "AA", "DD", "DD", "CC"),
string = c("a11", "a120", "a120", "a8", "a45", "a11", "a140", "a8", "a45") ,
value = rnorm(9, mean = 0, 1))
Name string value
BB a11 0.5912728
AA a120 0.5885065
AA a120 -0.5287264
BB a8 0.6932831
DD a45 -0.2892612
AA a11 1.0441365
DD a140 -0.5091612
DD a8 -0.3358695
CC a45 0.5598616
Я хотел бы изменить порядок df так, чтобы он упорядочивался на основе столбца строки numeri c part pf.
Я пытаюсь выполнить следующую команду:
string <- unique(as.character(df$string))
sorted.ind <- sort(as.numeric(gsub('a', '', string)), index.return = T)$ix
df$string <- factor(df$string, levels = string[sorted.ind])
Но это не меняет порядок таблицы.
Вот мой желаемый результат:
Name string value
BB a8 0.6932831
DD a8 -0.3358695
BB a11 0.5912728
AA a11 1.0441365
DD a45 -0.2892612
CC a45 0.5598616
AA a120 0.5885065
AA a120 -0.5287264
DD a140 -0.5091612
Кто-нибудь знает, как я могу исправить свой код?
Спасибо