以下は、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
(i) ベクトル (カテゴリのセット) と (ii) ランク (整数) の 2 つのパラメーターを 2 つのパラメーターとして受け取る関数rankCompany()を作成したいと思います。
関数の出力 - 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>
これを行う簡単な方法はありますか?