1

この素晴らしいコミュニティと専門家の回答に感謝します。これは、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 の出力

4

0 に答える 0