本文逻辑可能有些凌乱,是在数据处理的使用中学习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"模式。
主要应用:
数据的分割、应用和组合:
plyr
提供了ddply()
和dlply()
等函数,可以按照指定的变量对数据进行分组,然后对每个分组应用函数,最后将结果合并。数据的摘要统计:
plyr
提供了summarise()
函数,可以对数据进行摘要统计,比如计算均值、中位数、标准差等。数据的变形:
plyr
提供了mutate()
函数,可以对数据进行变形,比如添加新的变量、对现有变量进行转换等。数据的排序和筛选:
plyr
提供了arrange()
和filter()
函数,可以对数据进行排序和筛选。数据的重复处理:
plyr
提供了rbind.fill()
和rbind.fill.matrix()
函数,可以将多个数据框按行合并,并在合并时填充缺失值。数据的多级分组分析:
plyr
提供了group_by()
函数,可以按照多个变量对数据进行多级分组,然后进行分析。更灵活的分析:
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
。
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)是一种图形方法,用于比较数据的分布与正态分布。如果数据点大致沿着一条直线分布,则数据可以被认为是正态分布的。