5.22R语言初步学习-2(使用包、绘图)

本文逻辑可能有些凌乱,是在数据处理的使用中学习R语言,所以用到的一些包、函数等都直接写在这了,主要就是处理数据的一个过程可能会用到的部分函数。

包的使用

R语言的使用,很大程度上是借助各种各样的R包的辅助,从某种程度上讲,R包就是针对于R的插件,不同的插件满足不同的需求。感觉和python里面的库和MATLAB的工具箱类似。

下载包:install.packages("package_name","dir")

加载包:library(package_name )

查看包帮忙:

library(help="package_name")主要内容包括:例如:包名、作者、版本、更新时间、功能描述、开源协议、存储位置、主要的函数

help(package = "package_name")主要内容包括:包的内置所有函数,是更为详细的帮助文档

查看当前环境哪些包加载:find.package() 或者 .path.package()

移除包出内存:detach()

把其它包的数据加载到内存中:data(dsname, package="package_name")

查看这个包里的包有数据:data( package="package_name")

列出所有安装的包:library()

plyr

plyr 包是一个用于数据操作和数据分析的非常有用的工具包,它提供了一系列函数,可以简化数据操作和分析的过程。主要用途包括数据的分割、应用和组合,通常被称为"split-apply-combine"模式。

主要应用:

  1. 数据的分割、应用和组合 :plyr 提供了 ddply() 和 dlply() 等函数,可以按照指定的变量对数据进行分组 ,然后对每个分组应用函 数,最后将结果合并。

  2. 数据的摘要统计 :plyr 提供了 summarise() 函数,可以对数据进行摘要统计,比如计算均值、中位数、标准差等。

  3. 数据的变形 :plyr 提供了 mutate() 函数,可以对数据进行变形,比如添加新的变量、对现有变量进行转换等。

  4. 数据的排序和筛选 :plyr 提供了 arrange() 和 filter() 函数,可以对数据进行排序和筛选。

  5. 数据的重复处理 :plyr 提供了 rbind.fill() 和 rbind.fill.matrix() 函数,可以将多个数据框按行合并,并在合并时填充缺失值。

  6. 数据的多级分组分析 :plyr 提供了 group_by() 函数,可以按照多个变量对数据进行多级分组,然后进行分析。

  7. 更灵活的分析 :plyr 提供了一系列强大的函数,可以实现更复杂和灵活的数据分析,比如 join() 函数用于数据的连接操作,rename() 函数用于变量名的重命名等。

复制代码
ddply(ide2,~IDE,function(data) summary(data$Time))
结果:
      IDE Min. 1st Qu. Median   Mean 3rd Qu. Max.
1 Eclipse  232  294.75  393.5 468.15  585.50  952
2 VStudio  155  246.50  287.0 302.10  335.25  632
  • ddply(ide2, ~IDE, function(data) summary(data$Time)):
    • ide2 是你要操作的数据框。
    • ~IDE 表示按照 IDE 列进行分组。
    • function(data) summary(data$Time) 是对每个分组应用的函数,这里对每个分组的 Time 列进行了摘要统计。

结果解释

IDE: 显示了分组变量 IDE 的两个水平,即 Eclipse 和 VStudio。

Min.: Time 列的最小值。

1st Qu.: Time 列的第一个四分位数。

Median: Time 列的中位数。

Mean: Time 列的均值。

3rd Qu.: Time 列的第三个四分位数。

Max.: Time 列的最大值。

汇总操作、均值、标准差

summarise 指定你要对每个分组进行汇总操作。

Time.mean=mean(Time) 计算每个分组中 Time 列的均值,并命名为 Time.mean。

Time.sd=sd(Time) 计算每个分组中 Time 列的标准差,并命名为 Time.sd。

R语言包plyr的保姆级讲解,帮助你快速拆分应用汇总数据 - 知乎R语言是一种功能强大的数据分析和统计建模工具,拥有众多优秀的数据处理包。在数据科学领域中,数据预处理是数据分析的重要步骤之一。plyr旨在提供一组简洁而强大的工具,帮助用户进行数据的分割、转换、汇总和应...https://zhuanlan.zhihu.com/p/656843836

相信我,这是全网最详细的R包dplyr教程 - 知乎R语言包 dplyr之常用函数欢迎关注公众号:统计与数据挖掘 一、安装我的环境:win10 64位。R版本:4.0 以下所有操作均基于 jupyter lab+R语言。 install.packages("dplyr")二、加载包library("dplyr...https://zhuanlan.zhihu.com/p/358167377

car

car(Companion to Applied Regression)库提供了许多用于回归分析和统计模型诊断的工具。它特别有用的是包含了许多方差分析、回归诊断和图形化的功能。

如:

使用leveneTest进行方差齐性检验

leveneTest函数用于检验不同组别的方差是否相等(方差齐性)。这是方差分析(ANOVA)前需要满足的一个重要假设。

还有多重共线性检验、生成回归诊断图、Durbin-Watson 检验、Box-Cox 变换等

复制代码
# 安装和加载必要的包
install.packages("car")
library(car)

# 示例数据
ide2 <- readcsv("test.csv")

# 拟合方差分析模型
m <- aov(Time ~ IDE, data = ide2)

# 正态性检验
shapiro.test(ide2[ide2$IDE == "VStudio",]$Time)
shapiro.test(ide2[ide2$IDE == "Eclipse",]$Time)

# 方差齐性检验
leveneTest(Time ~ IDE, data = ide2)

# 查看方差分析的结果
summary(m)

# 多重共线性检验
model <- lm(Time ~ IDE + Subject, data = ide2)
vif(model)

# 生成回归诊断图
plot(model)

# Durbin-Watson 检验
durbinWatsonTest(model)

# Box-Cox 变换
boxCox(model)

数据可视化-绘图

复制代码
plot(Time ~ IDE, data=ide2)
  • 箱体(Box):显示数据的四分位数,即从第一四分位数(Q1)到第三四分位数(Q3)。
  • 中位数(Median):箱体内的一条横线表示数据的中位数。
  • 须(Whiskers):表示数据范围,通常延伸到1.5倍的四分位距(IQR)。
  • 异常值(Outliers):箱体外的点表示异常值。

通过箱线图,可以直观地比较两种 IDE 在 Time 变量上的分布情况。例如,可以看到两种 IDE 的中位数是否不同,数据的离散程度(通过箱体和须的长度)以及是否存在异常值等。

公式接口 plot(y ~ x, data) 根据数据类型自动选择适当的绘图类型。当 x 是一个因子变量(如分类变量)而 y 是一个数值变量时,plot 函数会自动生成一个箱线图(boxplot)。这是因为箱线图是一种适用于这种数据类型的可视化方法,能够清晰地显示不同分类变量(因子)的数值分布情况。

  • plot(): 用于绘制散点图、箱线图、线图等。

  • hist(): 用于绘制直方图。

  • boxplot(): 用于绘制箱线图。

  • barplot(): 用于绘制条形图。

    使用 R 基础系统绘制箱线图 main是标题

    boxplot(Time ~ IDE, data=ide2, main="Boxplot of Time by IDE", xlab="IDE", ylab="Time")

绘制直方图:

复制代码
hist(ide2[ide2$IDE == "VStudio",]$Time)

绘制Q-Q 图

为了评估方差分析模型(ANOVA)假设的正态性,使用qqnorm和qqline绘制 Q-Q 图。 Q-Q 图(Quantile-Quantile Plot)是一种图形方法,用于比较数据的分布与正态分布。如果数据点大致沿着一条直线分布,则数据可以被认为是正态分布的。

相关推荐
小向是个Der3 小时前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本
辣知7 小时前
辣知·化智93 被历史尘封的鬻子
学习
每天题库9 小时前
西藏安全员 A 证备考真题题库 强化重点知识刷题提升通过率
学习·安全·考试·题库·考证
Be for thing9 小时前
PyTorch基础|Tensor张量详解,张量创建、数据类型与常用操作
pytorch·学习·1024程序员节
前进的李工9 小时前
Agent 学习笔记 02:Harness 与工作流怎么理解
笔记·学习·agent·工作流·harness
m4Rk_10 小时前
【论文阅读】Agent记忆机制(114):MemoryTax——当 Agent 能自主搜索历史,专门的记忆系统还划算吗?
论文阅读·人工智能·学习·开源·github
程序员梅雨12 小时前
【从零开始学习数据仓库 | 第一篇】:维度建模理论
大数据·数据仓库·学习·阿里云·数据分析
keyipatience13 小时前
Git学习(4)Git分布式优势与实战配置全解析
git·学习
comyccccc16 小时前
STM32F407VET6核心板的部分电路绘制学习笔记
笔记·stm32·学习
叼烟扛炮16 小时前
Linux 学习笔记(三十六):并发进阶——读写锁 vs 自旋锁,到底怎么选?
linux·运维·服务器·笔记·学习