выполнить ранжирование для нескольких столбцов во фрейме данных в одной строке кода

#r

#r

Вопрос:

У меня есть «исходный» фрейм данных, содержащий данные в 3 столбцах. Я хотел бы ранжировать переменные в каждом столбце и выводить в новый фрейм данных.

Этот код работает для одного столбца. Могу ли я написать эту формулу, чтобы включить другие столбцы?

SortedFundamentals1 <- as.data.frame(rank(EquityFundamentals$Forward.P.E))

Это работает для одного столбца, но могу ли я вставить другие столбцы и выполнить их все сразу? Ранжирование независимо для каждого столбца.

Другими столбцами являются: FCF.Yield и Operating.Margin

Комментарии:

1. Попробуйте library(dplyr); df1 %>% mutate_at(vars(Forward.P.E, FCF.Yield, Operating.Margin), rank)

2. Спасибо, акрун. Нет ли способа изменить функцию «as.data.frame» для этого? Мне любопытно, и я полный новичок, и я хочу изучить различные способы изменения синтаксиса этой функции…

3. форматирование кода и небольшая очистка языка

Ответ №1:

Эта оболочка работает

 
SortedFundamentals1 = 
        as.data.frame( do.call(cbind, 
                               list(rank(EquityFundamentals$Forward.P.E),
                                    rank(EquityFundamentals$FCF.Yield),
                                    rank(EquityFundamentals$Operating.Margin))))