Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何按因变量分组?_R_Plot - Fatal编程技术网

R 如何按因变量分组?

R 如何按因变量分组?,r,plot,R,Plot,sciplot中的条形图允许我们绘制带有误差条的条形图。它还允许按独立变量(因子)进行分组。我想按因变量分组,我怎样才能做到 bargraph.CI(x.factor, response, group=NULL, split=FALSE, col=NULL, angle=NULL, density=NULL, lc=TRUE, uc=TRUE, legend=FALSE, ncol=1, leg.lab=NULL, x.leg=NULL, y.leg=NULL, cex.leg=1, bty="

sciplot中的条形图允许我们绘制带有误差条的条形图。它还允许按独立变量(因子)进行分组。我想按因变量分组,我怎样才能做到

bargraph.CI(x.factor, response, group=NULL, split=FALSE,
col=NULL, angle=NULL, density=NULL,
lc=TRUE, uc=TRUE, legend=FALSE, ncol=1,
leg.lab=NULL, x.leg=NULL, y.leg=NULL, cex.leg=1,
bty="n", bg="white", space=if(split) c(-1,1),
err.width=if(length(levels(as.factor(x.factor)))>10) 0 else .1,
err.col="black", err.lty=1,
fun = function(x) mean(x, na.rm=TRUE),
ci.fun= function(x) c(fun(x)-se(x), fun(x)+se(x)),
ylim=NULL, xpd=FALSE, data=NULL, subset=NULL, ...)
bargraph.CI的规格如上所示。响应变量通常是数值向量。这一次,我真的想画出三个响应变量(A,B,C)和相同的自变量。让我用数据框“mpg”来说明这个问题。我可以用下面的代码成功地得到一个图,这里的DV是hwy

data(mpg)
attach(mpg)

bargraph.CI(
class,  #categorical factor for the x-axis
hwy,    #numerical DV for the y-axis
group=NULL,   #grouping factor
legend=T, 
ylab="Highway MPG",
xlab="Class")
我还可以成功地获得一个绘图,唯一的更改是DV(从hwy更改为cty)

但是,如果我想同时使用两个DV,我的意思是,对于每个组,我想显示两个条形图,一个用于cty,一个用于hwy

data(mpg)
attach(mpg)

bargraph.CI(
class,  #categorical factor for the x-axis
c(cty,hwy),    #numerical DV for the y-axis
group=NULL,   #grouping factor
legend=T, 
ylab="Highway MPG",
xlab="Class")

由于维度不匹配,它将无法工作。我怎样才能做到这一点?实际上,使用ggplot2中的方法可以获得类似的条形图效果。因此,如果您知道如何使用ggplot2,对我来说也没问题。

正如显示数据时经常发生的那样,您应该首先处理数据,然后使用
条形图.CI
。在表达式中,要可视化的
data.frame
如下所示:

df <- data.frame(class=c(mpg$class, mpg$class), 
                 value=c(mpg$cty, mpg$hwy), 
                 grp=rep(c("cty", "hwy"), each=nrow(mpg)))

提醒所有相信在R:bargraph中只有ggplot2可以画线的人。CI不是ggplot2,而是使用标准图形。@Dietermene:很公平。我碰巧在
ggplot
标签上看到了这篇文章,我将使用
ggplot
的解决方案奏效了,所以我没有进一步思考。但显然,
bargraph.CI
不是
ggplot
df <- data.frame(class=c(mpg$class, mpg$class), 
                 value=c(mpg$cty, mpg$hwy), 
                 grp=rep(c("cty", "hwy"), each=nrow(mpg)))
bargraph.CI(
  class,        #categorical factor for the x-axis
  value,        #numerical DV for the y-axis
  group=grp,    #grouping factor
  data=df, 
  legend=T, 
  ylab="Highway MPG",
  xlab="Class")