R语言数据分析案例

在R语言中,数据分析是一个广泛且多样的领域,涵盖了数据清洗、探索性数据分析、可视化、统计建模和预测等各个方面。

案例一,该案例涉及读取数据、数据清洗、探索性数据分析(EDA)和数据可视化。

1. 数据准备

假设我们有一个关于汽车数据集(例如mtcars数据集,它是R语言内置的一个小型数据集),我们将使用它来进行数据分析。

2. 数据读取与加载

对于mtcars数据集,我们不需要额外读取,因为它已经内置在R中了。但如果你有一个外部数据集(如CSV文件),你可以使用read.csv()函数来读取它。

r

# 直接使用内置的mtcars数据集  

data <- mtcars

3. 数据清洗

在这个简单的案例中,我们不需要进行复杂的数据清洗,但通常这可能包括处理缺失值、异常值、数据转换等。

4. 探索性数据分析(EDA)

我们将进行一些基本的EDA,例如查看数据集的前几行、总结性统计量、数据分布等。

r

# 查看数据集的前几行  

head(data)  

  

# 查看数据集的维度  

dim(data)  

  

# 计算各列的均值、标准差等  

summary(data)  

  

# 绘制mpg(每加仑英里数)的直方图  

hist(data$mpg, main = "Histogram of MPG", xlab = "Miles per Gallon")  

  

# 绘制mpg与hp(马力)的散点图  

plot(data$mpg, data$hp, main = "MPG vs Horsepower", xlab = "Miles per Gallon", ylab = "Horsepower")

5. 数据可视化(进阶)

我们还可以使用更复杂的可视化工具,如ggplot2包,来创建更吸引人的图表。

r

# 安装并加载ggplot2包(如果还没有安装)  

if (!require(ggplot2)) install.packages('ggplot2')  

library(ggplot2)  

  

# 使用ggplot2绘制mpg与hp的散点图  

ggplot(data, aes(x = mpg, y = hp)) +  

  geom_point() +  

  labs(title = "MPG vs Horsepower", x = "Miles per Gallon", y = "Horsepower")

6. 统计分析(可选)

在这个案例中,我们还可以进行一些简单的统计分析,例如使用线性模型来探索mpg与hp之间的关系。

r

# 使用lm()函数拟合线性模型  

model <- lm(mpg ~ hp, data = data)  

  

# 显示模型摘要  

summary(model)

案例二,我们将使用内置的iris数据集,这是一个常用的多类分类问题的数据集,包含了三种鸢尾花的测量数据。

1. 数据加载

iris数据集是R语言内置的数据集,包含了150个观测值,分为三类鸢尾花(setosa, versicolor, virginica),每个观测值有四个特征:花萼长度(Sepal.Length)、花萼宽度(Sepal.Width)、花瓣长度(Petal.Length)和花瓣宽度(Petal.Width)。

r

# 加载iris数据集  

data(iris)

2. 数据探索

首先,我们对数据进行初步的探索。

r

# 查看数据集的前几行  

head(iris)  

  

# 查看数据集的统计摘要  

summary(iris)  

  

# 检查数据集中是否存在NA值  

sum(is.na(iris))

3. 数据可视化

使用ggplot2包进行数据可视化。

r

# 安装并加载ggplot2包(如果尚未安装)  

if (!require(ggplot2)) install.packages('ggplot2')  

library(ggplot2)  

  

# 绘制花瓣长度与宽度的散点图,并根据鸢尾花的种类着色  

ggplot(iris, aes(x = Petal.Length, y = Petal.Width, color = Species)) +  

  geom_point() +  

  labs(title = "Iris Dataset: Petal Length vs Petal Width", x = "Petal Length", y = "Petal Width")

4. 数据分析

我们可以使用统计方法来分析不同种类鸢尾花之间特征的差异。

r

# 对数据进行方差分析(ANOVA),检查不同种类的鸢尾花在花瓣长度上是否有显著差异  

anova_results <- aov(Petal.Length ~ Species, data = iris)  

summary(anova_results)  

  

# 对数据进行箱线图可视化,展示不同种类鸢尾花的花瓣长度分布  

ggplot(iris, aes(x = Species, y = Petal.Length, fill = Species)) +  

  geom_boxplot() +  

  labs(title = "Boxplot of Petal Length by Iris Species", x = "Species", y = "Petal Length")

5. 数据建模(可选)

我们还可以使用机器学习算法来构建分类模型,预测鸢尾花的种类。

r

# 安装并加载caret包(如果尚未安装)  

if (!require(caret)) install.packages('caret')  

library(caret)  

  

# 将Species从字符型转换为因子型,便于建模  

iris$Species <- as.factor(iris$Species)  

  

# 划分训练集和测试集  

set.seed(123) # 设置随机种子,确保结果可复现  

trainIndex <- createDataPartition(iris$Species, p = 0.8, list = FALSE, times = 1)  

train <- iris[trainIndex, ]  

test <- iris[-trainIndex, ]  

  

# 使用决策树模型进行训练  

model <- rpart(Species ~ ., data = train, method = "class")  

  

# 查看模型详情  

print(model)  

  

# 使用模型进行预测  

predictions <- predict(model, test, type = "class")  

  

# 查看预测结果的混淆矩阵  

confusionMatrix(predictions, test$Species)

这个案例展示了如何使用R语言进行数据分析的基本流程,包括数据加载、数据探索、数据可视化、统计分析和数据建模。当然,根据实际需求和数据集的特性,数据分析的步骤和方法可能会有所不同。

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风非37

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值