R 语言数据分析案例
一个R 语言数据分析案例:
案例背景
假设我们有一份某电商平台的销售数据,数据包含了商品编号、商品类别、价格、销售量和销售日期等信息,我们想要分析不同类别商品的销售情况。
步骤
- 数据导入
- 首先,假设数据存储在一个 CSV 文件中(例如
sales_data.csv
),使用read.csv()
函数将数据导入 R 环境。
- 首先,假设数据存储在一个 CSV 文件中(例如
sales_data <- read.csv("sales_data.csv")
- 数据探索
- 使用
head()
函数查看数据的前几行,了解数据的结构和内容。
- 使用
head(sales_data)
- 使用
summary()
函数获取数据的统计摘要,包括数值型变量的最小值、最大值、均值、中位数等信息。
summary(sales_data)
- 使用
str()
函数查看数据对象的结构,包括变量类型等。
str(sales_data)
- 数据清洗(如有需要)
- 检查是否存在缺失值,可以使用
is.na()
函数结合sum()
函数来统计每列缺失值的数量。
- 检查是否存在缺失值,可以使用
colSums(is.na(sales_data))
- 如果有缺失值,可以根据具体情况进行处理,例如删除包含缺失值的行(使用
na.omit()
函数)或者使用合适的插补方法。
- 数据分析
- 计算不同商品类别下的销售总额。可以使用
aggregate()
函数。
- 计算不同商品类别下的销售总额。可以使用
total_sales_by_category <- aggregate(price * sales_quantity ~ product_category, data = sales_data, sum)
- 计算不同商品类别下的平均销售量和平均价格。
average_sales_by_category <- aggregate(sales_quantity ~ product_category, data = sales_data, mean)
average_price_by_category <- aggregate(price ~ product_category, data = sales_data, mean)
- 绘制可视化图表,例如使用
barplot()
函数绘制不同类别商品销售总额的柱状图。
barplot(total_sales_by_category$`price * sales_quantity`, names.arg = total_sales_by_category$product_category, xlab = "Product Category", ylab = "Total Sales", main = "Total Sales by Product Category")
这个案例只是一个简单的示例,实际的数据分析可能会涉及更复杂的操作,如时间序列分析、相关性分析、聚类分析等,具体取决于业务问题和数据特点。
以下是 R 语言中一些常用的数据分析函数:
数据读取与写入函数
read.csv()
:用于读取以逗号分隔的 CSV(Comma - Separated Values)格式文件,将数据导入到 R 中的数据框(data frame)。例如:data <- read.csv("file.csv")
。read.table()
:可以读取更通用格式的文本文件,通过指定分隔符等参数来解析数据。例如:data <- read.table("file.txt", sep = "\t")
,这里以制表符分隔的文本文件为例。write.csv()
:将数据框写入到 CSV 文件中。例如:write.csv(data, "new_file.csv")
。
数据探索函数
head()
:查看数据框或向量等对象的前几行。默认显示前 6 行,可指定参数n
改变显示行数,如head(data, n = 10)
。tail()
:与head()
相反,查看对象的后几行,默认也是 6 行。summary()
:对数据框中的每列数据生成统计摘要,包括最小值、最大值、均值、中位数和四分位数等信息。对于数值型数据,会给出基本的统计量;对于因子型数据,会显示不同水平的计数。例如:summary(data)
。str()
:显示数据对象的结构,包括数据类型(如数值型、字符型、因子型等)、维度和内容预览等信息,有助于快速了解数据的概况。如str(data)
。
数据处理函数
subset()
:用于从数据框中提取满足特定条件的子集。例如,从数据框data
中提取variable1
大于 10 的行:new_data <- subset(data, variable1 > 10)
。merge()
:用于合并两个数据框,可以根据指定的键(key)进行内连接、外连接等操作。例如:merged_data <- merge(data1, data2, by = "id")
,这里根据id
列合并data1
和data2
。apply()
系列函数:包括apply()
、lapply()
、sapply()
等。apply()
:对矩阵的行或列应用一个函数。例如,计算矩阵matrix_data
每行的均值:row_means <- apply(matrix_data, 1, mean)
,其中 1 表示按行操作,2 表示按列操作。lapply()
:对列表中的每个元素应用一个函数,并返回一个列表。例如:list_data <- list(a = 1:5, b = 6:10); result_list <- lapply(list_data, mean)
。sapply()
:与lapply()
类似,但尝试简化输出结果,如果结果是一个向量且长度合适,会返回向量而不是列表。
统计分析函数
mean()
:计算数值向量或数据框中数值列的均值。例如:mean(data$variable)
。median()
:计算中位数。如median(data$variable)
。sd()
:计算标准差。例如:sd(data$variable)
。var()
:计算方差。如var(data$variable)
。cor()
:计算变量之间的相关性矩阵,可以是数值向量或数据框中的数值列。例如:cor(data[, c("variable1", "variable2")])
。t.test()
:进行 t 检验,可用于比较两组数据的均值是否有显著差异。例如:t.test(group1_data, group2_data)
。
可视化函数
plot()
:通用的绘图函数,可以绘制多种类型的图形,如散点图、折线图等。例如:plot(data$variable1, data$variable2)
绘制变量 1 和变量 2 的散点图。hist()
:绘制直方图,用于展示数值数据的分布。例如:hist(data$variable)
。boxplot()
:绘制箱线图,可用于比较不同组数据的分布情况。例如:boxplot(variable ~ group, data = data)
,这里根据group
变量绘制variable
的箱线图。
R语言提供了多种函数用于不同类型的假设检验,以下是一些常见假设检验的实现方法:
一、t检验
- 单样本t检验
- 假设我们有一个向量
x
,我们想检验其均值是否等于某个值(例如mu0 = 5
)。 - 使用
t.test()
函数,语法为:t.test(x, mu = mu0)
。 - 示例:
- 假设我们有一个向量
x <- rnorm(30) # 生成30个服从正态分布的随机数
t.test(x, mu = 0)
- 独立双样本t检验
- 假设有两组数据
group1
和group2
。 - 语法为:
t.test(group1, group2)
。这里假设两组数据方差相等(默认情况),如果方差不等,可以使用t.test(group1, group2, va
- 假设有两组数据
原文地址:https://blog.csdn.net/huanghm88/article/details/143548198
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!