После нескольких функций я получаю таблицу, в которой есть упорядоченные символы, некоторые из которых начинаются с "(" или "[", за которыми следуют цифры. (Интервалы, идущие от разреза (x) в данных)
То, чего я хочу добиться, - это порядок по начальному значению инверсий, чтобы (100,124] не предшествовало редактированию (70,100] (см. Пример): порядок столбца1 (класса) должен оставаться таким, как есть.
хорошо, я попытался сделать это с помощью order и setorder из data.table, но пока не получилось. Я думаю, мне нужно разделить столбец с помощью strsplit, а затем упорядочить по первому элементу, но это не может быть "лучшее "решение
test <- data.frame(class = c("class1", "class1", "class1", "class1", "class2", "class2", "class2", "class2", "class2", "class2", "class2", "class2", "class2"),
attr = c("1","2","4","5","(100,124]", "(124,180]" ,"(180,Inf]", "(37,50]" , "(5,37]" , "(50,56]" , "(56,70]" ,"(70,100]" ,"[0,5]" ),
value = c(415.14,115.13,422.52,37.07,167.40,135.04,67.01,280.03,81.18,237.83,285.62,302.63,3.37))
цель:
class attr value
class1 1 415.14
class1 2 115.13
class1 4 422.52
class1 5 37.07
class2 [0,5] 3.37
class2 (5,37] 81.18
class2 (37,50] 280.03
class2 (50,56] 237.83
class2 (56,70] 285.62
class2 (70,100] 302.63
class2 (100,124] 167.40
class2 (124,180] 135.04
class2 (180,Inf] 67.01