R语言进行描述性统计分析

基本知识:
**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")


  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值