Программная сортировка data.frame () - PullRequest
1 голос
/ 03 февраля 2012

Я использую следующий метод для сортировки data.frame.

# Dummy data
dat <- data.frame(a=letters[1:26],b=runif(26),c=rnorm(26))
# Sort
dat <- dat[with(dat, order(-b)),]

Я хотел бы иметь возможность генерировать "-b", используя что-то похожее на вставку, чтобы я мог сортировать программно.

Что-то вроде:

dat <- dat[with(dat, order(paste("-b"))),]

Я пробовал такие вещи, как paste(), cat(), get(), getElement(), но безрезультатно.

Ответы [ 2 ]

4 голосов
/ 03 февраля 2012

как насчет этого?

sort.var <- 'b'
inverse <- TRUE
dat <- dat[order(dat[[sort.var]],decreasing=inverse),]
3 голосов
/ 03 февраля 2012

Вы делаете это для себя сложнее, чем нужно:

dat <- dat[order(dat[,"b"], decreasing=TRUE),]

Теперь вы можете указать столбец в виде строки символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...