对某工厂50个工人某月工资进行登记获取原始资料用R语言按组距300编制频数表,计算频数、频率和累积频率,并绘制直方图
时间: 2024-09-25 16:02:35 浏览: 52
R语言基本统计分析案例及代码
在R语言中,你可以使用`hist()`函数以及相关数据处理命令来完成这个任务。首先,你需要准备数据集,假设它是一个名为`worker_salaries`的数据框,其中包含工人的工资信息。下面是一系列步骤:
1. **加载数据并预处理**:
```r
# 假设你的数据存储在一个CSV文件中
worker_data <- read.csv("worker_salaries.csv")
# 确保工资字段是数值型
if(!is.numeric(worker_data$Salary)) {
worker_data$Salary <- as.numeric(worker_data$Salary)
}
```
2. **创建频数表**:
使用`cut()`函数将工资分段,然后用`table()`计算每个区间的频数(次数):
```r
wage_bins <- cut(worker_data$Salary, breaks = seq(0, max(worker_data$Salary), by = 300))
freq_table <- table(wage_bins)
```
3. **计算频率**:
频率是频数除以总人数(在这个例子中,就是50),你可以这样做:
```r
total_workers <- nrow(worker_data)
freq <- freq_table / total_workers
```
4. **计算累积频率**:
从第二个区间开始累加前一区间的频率,直到最后一个区间:
```r
cum_freq <- c(0, cumsum(freq))
```
5. **绘制直方图**:
最后,使用`barplot()`或`hist()`函数展示频数、频率和累积频率:
```r
hist(wage_bins, freq = TRUE, breaks = wage_bins, main = "工资分布直方图", xlab = "工资范围", ylab = "频率",
col = "lightblue", border = "white", ylim = c(0, max(cum_freq) + 0.1))
# 可视化累积频率
lines(seq(min(wage_bins), max(wage_bins)), cum_freq, type = "l", lty = 2, col = "red")
```
现在你就得到了工资的频数、频率和累积频率直方图。
阅读全文