この素晴らしいコミュニティと専門家の回答に感謝します。これは、stackoverflow に関する私の最初の質問です。私は調査を行いましたが、私がやろうとしていることを見つけることができませんでした。セカンダリ Y を使用してグラフを作成し、特定の変数に基づいて合計カウントの groupby を実行する効率的なコードを r に記述する方法は? X にプロットする変数ごとに個別のデータフレームを作成するのではなく、コード内で groupby を動作させたいと考えています。r データフレームには数千の行と数百の列があります。私のサンプルデータは次のようになります。(20×5)
tv = c(0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0)
pr1 =c("AA", "AB", "ZH", "AA", "ZA", "AB", "ZA", "ZA", "AA", "AA", "ZA", "AA", "ZG", "AA", "ZF", "AB", "AA", "AB", "AA", "AA")
pr2 =c("B", "F", "F", "J", "E", "E", "J", "B", "J", "F", "B", "B", "J", "B", "F", "J", "B", "F", "B", "E")
pr3 =c(13, 13, 25, 13, 13, 13, 13, 1, 13, 13, 13, 13, 25, 13, 25, 1, 13, 13, 13, 13)
sample_data = data.frame("SN"= c(1:20),"Target_Vbl"=tv,Predictor_1=pr1,Predictor_2=pr2,Predictor_3=pr3)
このサンプル データから、探しているグラフを Excel で作成できますが、r でプロットするとなるとわかりません。他の予測変数のコードを再利用したいのですが、Y 軸は常に同じままです。つまり、プライマリ Y は Target_Vbl の合計数であり、セカンダリ Y は、X 軸にプロットされた予測変数の特定のカテゴリの 1 の % です。
チャートは以下のようになります...現在、Predictor_1 に対してプロットされています (Excel で描画)
編集 - plotrix を試した後
sample_data を続けて、plotrix パッケージを利用するための要約データを作成しました。(lawyeR に感謝) twoord.plot は私が探しているものに近づきますが、以下のように食い違いはほとんどありません - 1. 左 Y 軸の tc (predictor_1 の合計数) のバーを取得していません...私はやった「タイプ」オプションで「バー」に言及してみてくださいが、うまくいきませんでした。2. X 軸のラベルにはデータの値は表示されませんが、デフォルトで数値が表示されます。1、2、3 ではなく、「AA」、「AB」、「ZA」などを表示する必要があります。 3. 全体的なプロセスをより簡潔にする方法はありますか。私のコードはせいぜい粗雑だと思います。どんなポインタも役に立ちます。
library(sqldf)
smry = sqldf("Select Predictor_1, count(Target_Vbl) as tc, sum(Target_Vbl)
as conv from sample_data Group by Predictor_1")
smry$ratio = round((smry$conv/smry$tc),2)
library(plotrix)
twoord.plot(smry$Predictor_1, smry$tc,
smry$Predictor_1, smry$ratio,
type= c("l", "l"), lcol=3,rcol=4,do.first="plot_bg(\"gray\")")
グラフは次のようになります - twoord.plot の出力