小さなローン ショップに関するデータセットがあり、そのローンが担保付証券でどの程度カバーされているかを知りたいとします。問題は、私は 1 つのローンに対して複数の証券を差し入れており、複数のローンに対して 1 つの証券を差し入れているということです。
cAID cID cLoan sID sAmount
1 10 50 200 100 1100
2 11 50 1000 100 1100
3 12 60 1000 110 900
4 12 60 1000 120 300
5 14 80 1000 140 1200
6 15 90 1000 150 900
ローンに割り当てられた担保の額はローンを超えてはならず、担保がローンよりも高く、その担保に裏打ちされた別のローンがある場合は、残りをそれに割り当てる必要があります。
理想的には、次のように終了することを望みます。
cAIDa cIDa cLoanA sIDa sAmountA asignedSAmountA CoverageRatio
1 10 50 200 100 1100 200 1.0
2 11 50 1000 100 1100 900 0.9
3 12 60 1000 110 900 1000 1.0
4 12 60 1000 120 300 1000 1.0
5 14 80 1000 140 1200 1000 1.0
6 15 90 1000 150 900 900 0.9
これらの他の 2 つの列を R または Excel で生成するにはどうすればよいですか? 基本的に、最終的には、一意のクライアント アカウント ID と、証券を過大にしないで割り当てられた証券の合計が必要です。最初の生のローンは 200 (cLoanA) で、保証金 (sAmountA) は 1100 であるため、割り当てられた保証金はローンの最大値 (assignedSAmountA) であるため 200 ですが、次のローンには同じセキュリティが使用され (同じ sIDa に注意してください)、1100 でした。最初のローンの 200 を差し引くと、2 行目の cLoanA が 1000 であるため、残りは 900 になります。したがって、保証金の全額を使用し、レシオは 0.9 であり、これは一部が無担保であることを意味します。これは、assignedSAmountA と Coverage ratio の最初の数を導き出す方法です。
R での私のコード: `
#example client AccountID
cAIDa <- c(10, 11, 12, 12, 14, 15)
#example client AccountID
cAIDa <- c(10, 11, 12, 12, 14, 15)
#example client ID
cIDa <- c(50, 50, 60, 60, 80, 90)
#example loan amount
cLoanA <- c(200, 1000, 1000, 1000, 1000, 1000)
#example security pledged ID
sIDa <- c(100, 100, 110, 120, 140, 150)
#example security pledged Amount
sAmountA <- c(1100,1100,900,300,1200, 900)
# generate initial data.frame
portfolioOne <- data.frame(cAIDa,cIDa,cLoanA,sIDa,sAmountA)
portfolioOne
#assign security sum by unique account id
asignedSAmountA <- c(200, 900, 1200, 1200, 1000, 900)
portfolioTwo <- data.frame(cAIDa,cIDa,cLoanA,sIDa,sAmountA, asignedSAmountA)
ratio1 <- asignedSAmountA/portfolioOne$cLoanA
portfolioTwo$CoverageRatio <- ratio1
portfolioTwo