Ниже приведен отформатированный фрейм данных с именем df.
Company Category Margin Ranking
SBI BK 34.5 1
PNB BK 39.5 2
UCO BANK BK 39.9 3
BANK BK 41.3 4
INDIAN BANK BK 42.3 5
DENA BANK BK 44.5 6
VIJAYA BANK BK 44.5 7
UNION BANK BK 47.6 8
CENTRAL BANK BK 49.8 9
INFOSYS IT 5.6 1
HCL TECH IT 5.9 2
TCS IT 6.9 3
CMC IT 12.6 4
TECHMAHINDRA IT 12.6 5
COGNIZANT IT 15.8 6
IGATE IT 22.4 7
WIPRO IT 22.9 8
HEXAWARE IT 34.8 9
MAHINDRA SATYAM IT 34.8 10
DR. REDDYS PH 14.5 1
SUN PHARMA PH 19.2 2
CIPLA PH 23.9 3
LUPIN PH 23.9 4
DIVIS LABS PH 29 5
Я хотел бы написать функцию rankCompany(), которая принимает 2 параметра (i) вектор (набор категорий) и (ii) ранг (целое число) в качестве 2 параметров.
Вывод функции — Data.Frame (df.out)
Содержимое файла df.out
с названием компании, категорией и маржей, которые соответствуют указанному рейтингу.
В случае, если в какой-либо категории нет компании, которая соответствует данному рейтингу, следует вернуть в этом столбце.
Ниже приведен пример кода для проверки функции.
Тест № 1
catg <- c("BK", "IT", "PH")
rankCompany(catg, 2)
Company Category Margin
BK PNB BK 39.5
IT HCLTECH IT 5.9
PH SUN PHARMA PH 19.2
Тест № 2
catg <- c("BK", "IT", "PH")
rankCompany(catg, 7)
Company Category Margin
BK VIJAYA BANK BK 44.5
IT IGATE IT 22.4
PH <NA> PH <NA>
Тест 3
catg <- c("BK", "IT", "PH", "EG")
rankCompany(catg, 10)
Company Category Margin
BK <NA> BK <NA>
IT MAHINDRA SATYAM IT 34.8
PH <NA> PH <NA>
EG <NA> EG <NA>
Есть ли простой способ сделать это?