Я работаю над проектом автоматизации в R. Я хочу упорядочить входной набор данных (т. Е. Фрейм данных) по значениям строк. Запрещено использовать жестко запрограммированные значения, поскольку это автоматический код. Воспроизводимый пример ниже:
data("mtcars")
groupBY <- c('cyl','carb')
Обычно я бы включил go и заказал бы это:
mtcars_ordered <- mtcars[order(mtcars$cyl,mtcars$carb),]
или это:
mtcars_ordered <- mtcars[with(mtcars,order(cyl,carb)),]
но я нахожусь в ' автоматизированном мире ', без жестко закодированных значений. Таким образом, я ищу что-то вроде этого:
mtcars_ordered_auto <- mtcars[with(mtcars,order(groupBY)),]
order()
принимает векторы, которые являются подмножествами фрейма данных, но я не могу найти способ сделать это только с R-базой.
PS В конце концов мне удалось использовать fn $ sqldf, как предлагалось здесь , написав:
groupBY_str <- paste(groupBY,collapse=',')
mtcars_ordered_sql <- fn$sqldf('select * from mtcars order by $groupBY_str').
Тем не менее, мне любопытно, как решить эту проблему с помощью базы R.