У меня есть кадр данных с несколькими столбцами. Я хочу создать функцию/цикл или что может быть более эффективным, чтобы взять фрейм данных, заказать столбец, создать ранг переменной (с именем вроде rank_columnname) на основе этого порядка и добавить его в фрейм данных.Самый эффективный способ упорядочения столбцов и создания переменных ранга
dat <- data.frame(indi1=rnorm(10),indi2=rnorm(10))
dat1 <- dat[order(dat$indi1), ]
dat1$rank_indi <- 1:nrow(dat)
dat2 <- dat1[order(dat1$indi2), ]
dat2$rank_indi2 <- 1:nrow(dat2)
Этот пример делает то, что я хочу, но громоздким способом. Я пробовал использовать lapply, но я не могу обновить фрейм данных новым столбцом с похожим именем.
Любая помощь приветствуется.
Вы можете уменьшить свой код 'SDAT $ rank_indi <- порядка ($ indi1 SDAT) '. Функция 'order' возвращает уже« ранжирующий »вектор. Для других решений см. Пакет 'data.table'. – Jimbou
Кроме того, что-то вроде 'library (dplyr); dat%>% mutate_each (funs (dense_rank)) ' –