5

我正在尝试使用 ddply 方法获取包含有关 3000 部电影的各种信息的数据框,然后计算每种类型的平均总收入。我是 R 新手,我已经阅读了此处与 ddply 相关的所有问题,但我似乎仍然无法正确理解。这是我现在拥有的:

> attach(movies)
> ddply(movies, Genre, mean(Gross))
Error in llply(.data = .data, .fun = .fun, ..., .progress = .progress,  : 
.fun is not a function.

我应该如何编写一个函数来取每组电影的“总”列中的值的平均值,按类型分组?我知道这似乎是一个简单的问题,但文档真的让我感到困惑,而且我对 R 语法还不太熟悉。

除了 ddply 之外,还有其他方法可以使这更容易吗?

谢谢!!

4

2 回答 2

10

这是一个使用 ggplot2 中可用的提示数据集的示例

library(ggplot2);
mean_tip_by_day = ddply(tips, .(day), summarize, mean_tip = mean(tip/total_bill))

希望这是有用的

于 2011-03-06T06:07:14.673 回答
2

对于这样的简单操作,您可能不需要 plyr。tapply()轻松完成这项工作,您无需加载其他软件包。语法似乎也比 Ramnath 的简单:

tapply(tips$tip, tips$day, mean)

请注意,plyr 是用于许多任务的绝佳工具。对我来说,这似乎有点矫枉过正。

于 2011-03-06T20:49:52.837 回答