计算均值,但留下唯一变量的数量

时间:2015-10-09 03:45:02

标签: r plyr mean

我和R和plyr有点挣扎,我不知道如何获得我感兴趣的结果。我的数据框看起来像这样:

Region Price
Alentejano 71
Andalucia 30
Bordeaux 135
Bordeaux 500
Bordeaux 185

等等。我想得到每个地区的平均值,到目前为止我尝试使用plyr和代码:

means <- ddply(data, ~ Region, summarise, mean = mean(Price), sd=sd(Price))

成功地给出了我在每个变量有多个遵守的地方的标准偏差。我没有任何办法。我如何制作一个代码,让我有多次观察的平均值,但如果只有一个遵守则留下数字?

2 个答案:

答案 0 :(得分:1)

根据您的代码,您没有使用@XmlAccessorType,而是XmlAccessType.FIELD。当您采用一次观察的平均值时,它将返回该观察值:

关于您的示例数据:

dplyr

返回:

plyr

如您所见,对于“Alentejano”和“Andalucia”地区,将返回与原始数据中相同的值。

使用您提供的代码:

aggregate(Price ~ Region, dat, FUN = mean)

我明白了:

      Region    Price
1 Alentejano  71.0000
2  Andalucia  30.0000
3   Bordeaux 273.3333

这是预期的&amp;有效的结果。

如果您同时使用library(plyr) ddply(dat, ~ Region, summarise, mean = mean(Price), sd=sd(Price)) Region mean sd 1 Alentejano 71.0000 NA 2 Andalucia 30.0000 NA 3 Bordeaux 273.3333 197.8846 ,请确保在plyr之前加载dplyr。否则,您将收到以下警告消息:

plyr

使用过的数据:

dplyr

答案 1 :(得分:0)

这将为您提供所需的答案

means <- ddply(data, ~ Region, summarise, mean = mean(Price[duplicated(Price)]), sd=sd(Price))