2017-10-19 17 views
-3

現在、ローンの目的とローンごとに関連するローングレードが表示されたローンが表示されているデータセットを使用しています。グループごとのカテゴリをグループ化する

データセットは、loancaseと別の列がグレードいる間にいずれかの列が目的であると呼ばれています。

以下に、比率でペアワイズで塗りつぶすマトリックスがあります。各行は100%になるはずです。つまり、各エントリは、そのグレードを受け取ったその特定の目的の割合です。例えば、の行[カー、]は、現在のデータプレースホルダーがNAであると私はそれを交換しようとしていますことを

40、0、20、0、0、20、20のようなノートを見てそれぞれの所望のエントリーを列挙するベクター。

matrix(data = NA, nrow = 14, ncol = 7, dimnames = list(levels(loancase$purpose), levels(loancase$grade))) 

enter image description here

どのようにして目的の値を持つ各エントリに記入のこの目標を達成するのですか?私は現在、tapply()を使用していると思っていますが、それを達成する方法はわかりません。ここでは現在のコードは "NA"の代わりになりますが、現在は正しくありません。

grades.per.purpose = tapply(loancase$grade, levels(loancase$purpose), sum) 
+3

データは画像ではなくプレーンテキストで入力してください。ユーザーはコピー/ペーストすることができます。 – neilfws

+0

関連するコード行を追加しました – user1713336

答えて

1

私はおもちゃの一例を構成しているだろう、使用可能なデータを提供していませんでしたので:私たちはCarローンを見せたい

df = read.table(text = "grade purpose amount 
      A Car 100 
      B Car 200 
      C Car 100 
      A Moving 200 
      B Moving 50 
      B Moving 50", header = TRUE) 

は、25%A- 50%Bグレードであり、 C級。 Movingの融資は、Aグレードが67%、Bグレードが33%です。正方形に

purpose grade percent 
1  Car  A 0.2500000 
2  Car  B 0.5000000 
3  Car  C 0.2500000 
4 Moving  A 0.6666667 
5 Moving  B 0.3333333 

グループにはあなたが尋ねたように、tidyrライブラリを試してみてください。

library(dplyr) 
x = df %>% 
    group_by(purpose) %>% 
    mutate(purpose.total = sum(amount)) %>% 
    group_by(purpose, grade) %>% 
    summarise(percent = sum(amount/purpose.total)) 

結果を:私はグループ化してまとめたこの種のdplyrライブラリを使用したい

​​

結果:

purpose   A   B  C 
1  Car 0.2500000 0.5000000 0.25 
2 Moving 0.6666667 0.3333333 0.00  
+0

これは私が達成しようとしている結果の正確なタイプです。ありがとうございます。残念ながら、これらの目的のために私は外部ライブラリを使用することはできません。ネイティブR関数を使用してこれを行う方法はありますか? – user1713336

+0

@ user1713336外部ライブラリが許可されていれば、Rははるかに使いやすくなります。パッケージを手に入れることができませんか? – lebelinoz

+0

私はライブラリも使いたいと思っていますが、私はこのプロジェクトで使うことができません。 – user1713336

1

私はそれがパッケージを使用することを禁止することはナンセンスだと信じていますが、OPを喜ばかもしれない方法で提示最終的な結果とbase Rソリューションは、そこにあります。

xt <- xtabs(amount ~ grade + purpose, df) 
t(xt)/colSums(xt) 
+0

Brilliant!あなたは私にもっと基盤Rを学ぶよう促しました! – lebelinoz

関連する問題