R Сортировать / упорядочить кадры с использованием переменных

Мой вопрос похож на несколько других вопросов сортировки / заказа, но не тот же. В основном вопрос заключается в том, как отсортировать / упорядочить кадры данных или таблицы данных в R, когда столбец для сортировки хранится в переменной.

Скажи, у меня есть фрейм данных

#create data frame
df <- data.frame(a=c(2,2,2,2,1,1,3,3,3,3,4,4),
                 b=c("c","c","a","a","a","b","b","d","d","d","e","e"),
                 c=c(123,223,1232,122,1232,345,243,456,5676,34,233,111),
                 stringsAsFactors=F)

Существует множество способов заказать фрейм данных. Некоторые из базовых подходов:

#ordering dataframe by column 1
df[with(df,order(df[,1])), ]
#ordering dataframe by column name 'a'
df[with(df,order(df[,"a"])), ]

Точно так же с таблицами данных:

library(data.table)
dt <- as.data.table(df)
dt[order(a)]

Но, если мой столбец для заказа хранится в переменной varкак мне это использовать?

#sort by column 1
var <- 1

#sort by column name "a"
var <- "a"

Делая шаг вперед, как сортировать по нескольким столбцам?

#sort by columns 1 and 2
var1 <- 1
var2 <- 2

1 ответ

Решение

Попробуй это

df[order(df[[var]]),]

РЕДАКТИРОВАТЬ благодаря Дэвиду или этому, если у вас есть несколько условий

df[order(df[,var]),]

Другие вопросы по тегам