У меня очень большая таблица данных, в которой (большое количество) элементы определяются строками, включая текст и числа.
library(data.table)
dd <- data.table(x = c("A4","A4","A4","A14","A14","A14","B4","B4","B4"),y = c("A4","A14","B4","A4","A14","B4","A4","A14","B4"), z = c(1,2,3,4,5,6,7,8,9))
x y z
A4 A4 1
A4 A14 2
A4 B4 3
A14 A4 4
A14 A14 5
A14 B4 6
B4 A4 7
B4 A14 8
B4 B4 9
Числа могут быть однозначными или двузначными , и поэтому R будет всегда упорядочивать их в соответствии с первой цифрой в номере (A14 до A4). Mixedsort может справиться с этим. Однако, когда я изменяю длинные данные в широкие
wide <- dcast(dd, x ~ y, value.var = "z")
R снова применяет порядок согласно основному правилу порядка.
x A14 A4 B4
A14 5 4 6
A4 2 1 3
B4 8 7 9
Мне нужно, однако, оригинальный порядок для следующих расчетов матрицы. Есть ли эффективный способ переименовать строку + однозначные в строку + двузначные (A4 -> A04) или другой подход, который я пропустил?