基本知识:
**1.1.**Summary函数的格式及参数意义
调用格式: summary(x, maxsum, digits, quantile.type)
summary 参数:
x 要进行统计的对象比方说是个数据框
maxsum 整数值,对于因子型变量展示几个水平
digits 整数值,属于格式输出中指定有效数字的位数
quantile.type 使用哪种方法计算4分位
除了x,其它参数一般选择缺省即可
**1.2 **describe 函数的格式及参数意义
调用格式: describe(x, descript, exclude.missing=TRUE,digits=4,…)
Describe 参数:
x 要进行统计分析的对象,比方说是个数据框
descript x中变量的名字
exclude.missing 是不是要打印包含缺失值的那些变量
digits 有效数字位数
Hmisc包中的describe()函数可返回变量和观测的数量、缺失值和唯一值的数目、平均值、
分位数,以及五个最大的值和五个最小的值。Info描述数据的连续性,Gmd为基尼均差。
1.3 stat.desc 函数的格式及参数意义
调用格式:stat.desc(x, basic=TRUE, desc=TRUE, norm=FALSE, p=0.95)
stat.desc 参数
x 要进行统计分析的对象,比方说是个数据框
basic 是不是返回一些基本的统计结果比如输入的观测值个数,每个变量所含缺失值的个数, 最大值,最小值等
desc 是不是返回各种描述性统计结果比如均值,中值,标准差,置信区间等
norm 是不是返回正态分布统计量
p 计算置信区间的显著性水平
2. 利用上述函数对数据的编程分析
2.1 三种函数的基本编程及其主要分析结果
(1) summary函数
vars <- c(“mpg”, “hp”, “wt”)
head(mtcars[, vars])
summary(mtcars[, vars])
【程序说明】:
(1)mtcars是R自带的数据集里的一个描述的是一些汽车的特征,进入R之后就可以使用,这个mtcars是一个数据框
(2)mtcars一共有11个变量,我们使用vars <- c(“mpg”, “hp”, “wt”), 从中选取三个变量
(3) head(mtcars[,vars])查看数据框开头的6个数据
(4)summary(mtcars[, vars])统计三个变量的描述性统计信息。
(2)describe 函数
library(Hmisc)
vars <- c(“mpg”, “hp”, “wt”)
head(mtcars[, vars])
describe(mtcars[, vars])
【程序说明】:
同上。
(3)stat.desc 函数
library(pastecs)
vars <- c(“mpg”, “hp”, “wt”)
head(mtcars[, vars])
stat.desc(mtcars[vars],norm = T)
任务1
读取student_BMI.csv中21个学生的相关数据,分别使用sort,rank,order对BMI进行排序。
# 读取CSV文件数据
data <- read.csv("student_BMI.csv")
# 提取BMI数据
bmi_data <- data$BMI
# 使用sort对BMI进行排序
sorted_bmi <- sort(bmi_data)
print("Sorted BMI:")
print(sorted_bmi)
# 使用rank对BMI进行排名
bmi_rank <- rank(bmi_data)
print("BMI Rank:")
print(bmi_rank)
# 使用order获取排序的顺序索引
bmi_order <- order(bmi_data)
print("BMI Order:")
print(bmi_order)
任务2
随机产生21名学生的高数和英语成绩向量,并加入到上题产生的数据框中。
# 随机生成高数和英语成绩向量
set.seed(123) # 设置随机种子以确保结果可重现
math_scores <- round(runif(21, min = 60, max = 100), 2) # 随机生成高数成绩
english_scores <- round(runif(21, min = 60, max = 100), 2) # 随机生成英语成绩
# 将随机生成的高数和英语成绩添加到数据框中
data$Math_Score <- math_scores
data$English_Score <- english_scores
任务3:
对BMI,高数,英语成绩进行描述性统计分析。指出这三项的一些描述性指数
,包括最小值、最大值、极差、平均数、方差、标准差、变异系数。
# 定义函数计算描述性统计指标
describe_stats <- function(x) {
stats <- c(
min = min(x),
max = max(x),
range = max(x) - min(x),
mean = mean(x),
variance = var(x),
sd = sd(x),
coefficient_of_variation = sd(x) / mean(x)
)
return(stats)
}
# 对BMI、高数和英语成绩进行描述性统计分析
bmi_stats <- describe_stats(data$BMI)
math_stats <- describe_stats(data$Math_Score)
english_stats <- describe_stats(data$English_Score)
# 输出描述性统计指标
cat("BMI Descriptive Statistics:\n")
print(bmi_stats)
cat("\nMath Score Descriptive Statistics:\n")
print(math_stats)
cat("\nEnglish Score Descriptive Statistics:\n")
print(english_stats)
问题4
有50个小区水稻产量的资料如下:
37 46 38 38 39 35 35 33 35 36 36 35 38 34 35 37 37 32 36 35
39 39 42 33 36 36 38 34 35 38 36 33 33 35 34 28 30 33 35 36
34 41 39 43 36 35 26 34 35 31
(1)使用hist函数画出其直方图,使用density函数加入密度曲线,使用table统计产量频数,并进行简单分析。
# 50个小区水稻产量数据
yield_data <- c(37, 46, 38, 38, 39, 35, 35, 33, 35, 36, 36, 35, 38, 34, 35, 37, 37, 32, 36, 35,
39, 39, 42, 33, 36, 36, 38, 34, 35, 38, 36, 33, 33, 35, 34, 28, 30, 33, 35, 36,
34, 41, 39, 43, 36, 35, 26, 34, 35, 31)
# 绘制直方图
hist(yield_data, breaks = 10, col = "skyblue", xlab = "Yield", ylab = "Frequency",
main = "Histogram of Rice Yield")
# 添加密度曲线
lines(density(yield_data), col = "red")
# 使用 table 统计产量频数
yield_freq <- table(yield_data)
print("Frequency of Yields:")
print(yield_freq)
(2)利用上问的频数分布计算基本统计数,包括样本容量、最小值、最大值、极差、平均数、方差、标准差、变异系数。
# 计算基本统计数
sample_size <- length(yield_data) # 样本容量
min_value <- min(yield_data) # 最小值
max_value <- max(yield_data) # 最大值
range_value <- max_value - min_value # 极差
mean_value <- mean(yield_data) # 平均数
variance_value <- var(yield_data) # 方差
sd_value <- sd(yield_data) # 标准差
cv_value <- sd_value / mean_value * 100 # 变异系数
# 输出基本统计数
cat("Sample Size:", sample_size, "\n")
cat("Min Value:", min_value, "\n")
cat("Max Value:", max_value, "\n")
cat("Range:", range_value, "\n")
cat("Mean:", mean_value, "\n")
cat("Variance:", variance_value, "\n")
cat("Standard Deviation:", sd_value, "\n")
cat("Coefficient of Variation:", cv_value, "%\n")