感谢这个精彩的社区和专家的回复。这是我关于stackoverflow的第一个问题。我做了研究,但找不到我想要做的事情。如何在 r 中编写一个有效的代码,该代码将创建一个带有辅助 Y 的图表,并且还根据某个变量对总计数进行分组?我希望 groupby 在代码中进行操作,而不必为要在 X 上绘制的每个变量创建单独的数据框。我在 r 数据框中有数千行和数百列。我的示例数据如下所示。(20 x 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 轴上的给定预测变量类别的百分比。
图表应如下所示...当前为 Predictor_1 绘制(在 excel 中绘制)
编辑 - 尝试 plotrix 之后
继续使用 sample_data,我创建了一个汇总数据以利用 plotrix 包。(感谢lawyeR) twoord.plot 让我更接近我正在寻找的东西,但是几乎没有如下差异 - 1. 没有得到左 Y 轴的 tc 条(predictor_1 的总数)......我做到了尝试在“类型”选项中提及“栏”,但它不起作用。2. X 轴标签不显示数据中的值,但默认为数字。它应该显示“AA”,“AB”,“ZA”等......而不是1,2,3...... 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 的输出