以下是名为 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>
有什么简单的方法可以完成这项工作吗?