在R中,是否有一种基于多个解释变量计算/绘制平均值的有效方法?

在R中,是否有一种基于多个解释变量计算/绘制平均值的有效方法?,r,plot,R,Plot,以下是我想要的: 让我们使用R附带的ToothGrowth数据集作为一个简单的示例。该数据集中有3列:长度、补充、剂量。剂量和补充量都是长度的解释变量。比如说,很容易绘制剂量与长度的关系图,并将补充剂作为一个因素。例如,使用qplot,您只需执行以下操作: qplot(x = ToothGrowth$dose , y = ToothGrowth$len, color = ToothGrowth$supp) 接下来,我想做的是看到随着剂量的增加,每种补充剂的平均增长趋势。也就是说,构建一个非常相

以下是我想要的:

让我们使用R附带的
ToothGrowth
数据集作为一个简单的示例。该数据集中有3列:长度、补充、剂量。剂量和补充量都是长度的解释变量。比如说,很容易绘制剂量与长度的关系图,并将补充剂作为一个因素。例如,使用qplot,您只需执行以下操作:

qplot(x = ToothGrowth$dose , y = ToothGrowth$len, color = ToothGrowth$supp)
接下来,我想做的是看到随着剂量的增加,每种补充剂的平均增长趋势。也就是说,构建一个非常相似的图,除了我希望y变量是基于剂量和补充的值的平均值


我不知道如何在打电话给qplot的情况下做到这一点。我突然想到,也许要做的事情是计算一个新的列或其他东西,但我也不确定如何使用
mutate
之类的东西来基于多个解释变量构建一个新的列。

我认为这可能是您正在寻找的,但您可能需要澄清。下面是如何使用
dplyr

Avg_ToothGrowth <- ToothGrowth %>%
  group_by(supp, dose) %>%
  summarise(avg_len = mean(len)) %>%
  ungroup

qplot(dose, avg_len, data = Avg_ToothGrowth, color = supp)

我认为这可能是你正在寻找的,但你可能需要澄清。下面是如何使用
dplyr

Avg_ToothGrowth <- ToothGrowth %>%
  group_by(supp, dose) %>%
  summarise(avg_len = mean(len)) %>%
  ungroup

qplot(dose, avg_len, data = Avg_ToothGrowth, color = supp)

我个人更喜欢像steveb那样使用
dplyr
,但是如果您不熟悉这个包,没有它的解决方案可能更容易理解。函数
aggregate()
可以帮助您:

tg <- aggregate(len ~ dose + supp, mean, data = ToothGrowth)

我个人更喜欢像steveb那样使用
dplyr
,但如果您不熟悉该软件包,没有它的解决方案可能更容易理解。函数
aggregate()
可以帮助您:

tg <- aggregate(len ~ dose + supp, mean, data = ToothGrowth)

tbl_-df
实际上不需要。为了清晰起见,我删除了“tbl_-df”。
tbl_-df
实际上不需要。为了清晰起见,我删除了“tbl_-df”。这是一个很好的答案。我喜欢dplyr,但我还是习惯了。我在解包dplyr解释时遇到了困难,但这一解释既有助于澄清这个答案,也为我提供了一种理解过程的方法,而无需任何特殊的包魔法。谢谢这是一个很好的答案。我喜欢dplyr,但我还是习惯了。我在解包dplyr解释时遇到了困难,但这一解释既有助于澄清这个答案,也为我提供了一种理解过程的方法,而无需任何特殊的包魔法。谢谢