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 的两个水平,即 EclipseVStudio

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):箱体外的点表示异常值。

通过箱线图,可以直观地比较两种 IDETime 变量上的分布情况。例如,可以看到两种 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)是一种图形方法,用于比较数据的分布与正态分布。如果数据点大致沿着一条直线分布,则数据可以被认为是正态分布的

相关推荐
小新同学^O^9 小时前
简单学习 --> 模型参数
学习·llm·大模型参数
cdbqss19 小时前
VB2026 菜单生成基类 BqGetMenuStrip
数据库·经验分享·学习·oracle·vb
吃好睡好便好11 小时前
创建魔方矩阵和单位矩阵
开发语言·人工智能·学习·线性代数·matlab·矩阵
星夜夏空9911 小时前
STM32单片机学习(21) —— I2C通信
stm32·单片机·学习
searchforAI13 小时前
B站视频转笔记用哪个工具?2026年四款AI笔记工具对比实测
人工智能·经验分享·笔记·gpt·学习·视频总结·ai笔记
爱上好庆祝14 小时前
学习JS第十一天(JS的进阶)
前端·javascript·学习
yeiweilan14 小时前
AI应用学习
学习
吃好睡好便好14 小时前
矩阵的加减运算
开发语言·人工智能·学习·线性代数·算法·matlab·矩阵
Mister西泽14 小时前
C++ Primer Plus 第六版 编程练习题及详细答案
开发语言·c++·学习·visual studio
Simon5231415 小时前
Spring Bean----5.27学习小记
java·学习·spring