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)是一种图形方法,用于比较数据的分布与正态分布。如果数据点大致沿着一条直线分布,则数据可以被认为是正态分布的

相关推荐
晨曦_子画32 分钟前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision1 小时前
Docker学习—Docker核心概念总结
java·学习·docker
ctrey_2 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
十年之少2 小时前
由中文乱码引来的一系列学习——Qt
学习
u0101526583 小时前
STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器
笔记·stm32·学习
王俊山IT3 小时前
C++学习笔记----10、模块、头文件及各种主题(二)---- 预处理指令
开发语言·c++·笔记·学习
慕卿扬3 小时前
基于python的机器学习(二)—— 使用Scikit-learn库
笔记·python·学习·机器学习·scikit-learn
WZF-Sang4 小时前
Linux—进程学习-01
linux·服务器·数据库·学习·操作系统·vim·进程
今天我又学废了5 小时前
scala学习记录,Set,Map
开发语言·学习·scala
Diamond技术流5 小时前
从0开始学习Linux——远程连接工具
linux·学习·centos·ssh·xshell·ftp