#r #data.table
#r #данные.таблица
Вопрос:
создайте образец данных.таблица
DT <- data.table("xx-g"=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9)
Порядок
DT[order(xx-g),]
error: Error in .checkTypos(e, names_x) : Object 'xx' not found. Perhaps you intended xx-g
Пробовал себя как персонаж
DT[order(as.character("xx-g")),]
Используйте имя столбца в кавычках
DT[order("xx-g"),]
укажите имя столбца в переменной
colvars<-"xx-g"
DT[order(colvars),]
Я не могу привести это в действие. Был бы благодарен, если кто-нибудь сможет предоставить указатель.
data.table_1.13.0 R 4.0 и платформа Windows 10.
Ответ №1:
В R вам всегда нужно использовать обратные метки `, когда имя не является регулярным, или использовать get
функцию или eval-as.name
DT[order(`xx-g`),]
DT[order(get("xx-g")),]
DT[order(eval(as.name("xx-g"))),]
xx-g y v
1: a 1 4
2: a 3 5
3: a 6 6
4: b 1 1
5: b 3 2
6: b 6 3
7: c 1 7
8: c 3 8
9: c 6 9
Ответ №2:
Мы можем указать столбец в .SDcols
DT[DT[, order(.SD[1]), .SDcols = 'xx-g']]