Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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_Weighted - Fatal编程技术网

R 交叉制表的重量案例,带平均值

R 交叉制表的重量案例,带平均值,r,weighted,R,Weighted,我喜欢在ggplot中对案例进行加权以绘制图表。我对每种情况都有一个特定的权重系数,例如: value weight 2 0.34 5 0.75 6 2.31 等等。。。绘制简单的分组条(“交叉列表”)很容易,我可以使用xtabs功能: ftab <- round(xtabs(weightBy ~ varCount + varGroup),0) ftab非常不清楚你在问什么。但问题底部的评论表明,您希望从加权数据计算平均值和中值。最简单的方法是通过调查包。您需要

我喜欢在ggplot中对案例进行加权以绘制图表。我对每种情况都有一个特定的权重系数,例如:

value weight
2     0.34
5     0.75
6     2.31
等等。。。绘制简单的分组条(“交叉列表”)很容易,我可以使用xtabs功能:

ftab <- round(xtabs(weightBy ~ varCount + varGroup),0)

ftab非常不清楚你在问什么。但问题底部的评论表明,您希望从加权数据计算平均值和中值。最简单的方法是通过调查包。您需要使用svydesign创建勘测设计对象-您可以忽略所有分层和聚类信息,只包含权重-然后使用svyby()或svyquantile()之类的函数来计算所需的任何内容


如果问题只是关于ggplot2(),您可能只需要使用weight=美学就可以了,除非它没有达到我认为的效果。

非常不清楚您在这里要问什么。但问题底部的评论表明,您希望从加权数据计算平均值和中值。最简单的方法是通过调查包。您需要使用svydesign创建勘测设计对象-您可以忽略所有分层和聚类信息,只包含权重-然后使用svyby()或svyquantile()之类的函数来计算所需的任何内容


如果问题只是关于ggplot2(),您可能只需要使用weight=美学就可以了,除非它没有达到我认为的效果。

也许我应该给出一个直观的例子。比方说,我想有一个变量“年龄”的方框图,按性别分组:!。现在,如果我用xtabs(weight~age+gender)对“age”和“gender”进行加权,我有正确的权重,但我需要知道每组的新平均值和中值(女性和男性的平均年龄)-并且不知道如何做到这一点。你为什么不使用权重美学?好的,aes(weight=…)有助于分组方框图和小提琴图,谢谢!我错过的最后一件事是计算加权组的平均值。我使用ggplot(mydat,aes(x=组,y=frq,fill=组,weight=wb))对未加权数据(wb设置为1)执行此操作+geom_箱线图()+统计汇总(fun.y=“mean”,geom=“point”,shape=21)。当我使用加权数据(wb设置为某个权重因子)时,方框图的分位数和中位数明显变化,但平均点没有变化。注意:对于未分组的方框图或小提琴图,获取平均值没有问题,因为我手动计算加权平均值,而没有统计汇总功能。也许我应该给出一个直观的例子。比方说,我想有一个变量“年龄”的方框图,按性别分组:!。现在,如果我用xtabs(weight~age+gender)对“age”和“gender”进行加权,我有正确的权重,但我需要知道每组的新平均值和中值(女性和男性的平均年龄)-并且不知道如何做到这一点。你为什么不使用权重美学?好的,aes(weight=…)有助于分组方框图和小提琴图,谢谢!我错过的最后一件事是计算加权组的平均值。我使用ggplot(mydat,aes(x=组,y=frq,fill=组,weight=wb))对未加权数据(wb设置为1)执行此操作+geom_箱线图()+统计汇总(fun.y=“mean”,geom=“point”,shape=21)。当我使用加权数据(wb设置为某个权重因子)时,方框图分位数和中位数明显变化,但平均点没有变化。P.S.:对于非分组方框图或小提琴图,获取平均值没有问题,因为我手动计算加权平均值,无需统计汇总功能。谢谢,Peter,我会检查包装和重量。我想要的是用加权数据绘制分组方框图。原始数据没有加权,但我对每种情况都有一个加权因子(参见我上面文章中的示例)。我可以使用xtabs计算计数和分组变量的加权交叉制表。或者,我可以使用Hmisc包中的wtd.mean和wtd.quantile函数来计算加权平均数和分位数,但只能针对单个变量。我现在不能做的是计算每个“列”的加权平均值的加权交叉表/grpI不知道如何使用调查包。我试过以下方法:require(survey)df Ok,我在脚本中发现了一个错误。一切都很好,现在与重量美学的ggplot!谢谢!谢谢,彼得,我会检查包裹和重量。我想要的是用加权数据绘制分组方框图。原始数据没有加权,但我对每种情况都有一个加权因子(参见我上面文章中的示例)。我可以使用xtabs计算计数和分组变量的加权交叉制表。或者,我可以使用Hmisc包中的wtd.mean和wtd.quantile函数来计算加权平均数和分位数,但只能针对单个变量。我现在不能做的是计算每个“列”的加权平均值的加权交叉表/grpI不知道如何使用调查包。我试过以下方法:require(survey)df Ok,我在脚本中发现了一个错误。一切都很好,现在与重量美学的ggplot!谢谢!
weightby <- function(var, weight) {
  items <- unique(var)
  newvar <- c()
  for (i in 1:length(items)) {
    newcount = round(sum(weight[which(var==items[i])]))
    newvar <- c(newvar, rep(items[i], newcount))
  }
  return (newvar)
}
if (!is.null(weightBy)) {
  variable <- weightby(variable, weightBy)
}