将100家餐厅的价格分成8组做成直方图,并计算平均数,使用R语言
时间: 2024-11-05 07:27:25 浏览: 6
在R语言中,要将100家餐厅的价格数据分成8组并制作直方图,同时计算每组的平均价格,你可以按照以下步骤操作:
1. 首先,假设你的餐厅价格数据存储在一个名为`restaurant_prices`的向量中。
```r
# 假设 restaurant_prices 是一个包含100个餐厅价格的向量
restaurant_prices <- c(...) # 请填充实际的数据
# 检查数据是否有缺失值,如果需要清理数据,可以使用 na.omit() 函数
cleaned_prices <- na.omit(restaurant_prices)
```
2. 然后,你需要确定价格范围和分组大小,创建一个等宽的直方图。这里我们选择8个组:
```r
# 定义组距 (bins) 和组数 (breaks)
num_groups <- 8
price_breaks <- seq(min(cleaned_prices), max(cleaned_prices), length.out = num_groups + 1)
# 创建直方图
histogram <- hist(cleaned_prices, breaks = price_breaks, main = "餐厅价格分布", xlab = "价格")
```
3. 计算每个组的平均价格,可以遍历直方图的频数(counts)和下限(breaks):
```r
mean_prices <- sapply(histogram$breaks[2:num_groups], function(price_range) {
mean_price <- sum(cleaned_prices * ifelse(cleaned_prices >= price_range[1] & cleaned_prices < price_range[2], 1, 0)) / sum(ifelse(cleaned_prices >= price_range[1] & cleaned_prices < price_range[2], 1, 0))
return(mean_price)
}, simplify = FALSE)
```
4. 结果 `mean_prices` 就是一个列表,包含了每个价格区间的平均价格。
```r
# 打印结果
print(mean_prices)
```
如果你的实际数据在运行以上代码前没有提供,记得替换`...`部分为你的数据。此外,确保你的R环境已经安装了`ggplot2`包,因为`hist()`函数默认生成的是基础图形,如果你想得到更美观的直方图,可以考虑用`ggplot2`进行绘制。
阅读全文