一、软件安装:(R软件+Rstudio)
1)R软件(或者revolutions R社区版):
https://www.r-project.org/——CRAN——China——download R for Windows——base——download R-4.4.1 for Windows
2)Rstudio:
第三方集成环境
二、安装R扩展包
通过CRAN下载
2种安装方式
1)联网在线安装(推荐)
install.packages("包名"):函数。下载扩展包
.libPaths():函数。查看库所在位置(注意函数前有1个小数点符号“.”)
library():函数。显示库里所有安装包
2)源代码安装
R官网下载扩展包
处理数据时,部分相关操作流程
1)读入文件:df <- read.table("xx.csv", sep = "-",head = T)
df:数据框,命名自定义
read.table():创建数据框的函数
sep = "-":分隔符,符号自定义
2)提取:table(列名)
3)分组统计:aggregate(df$len, by = list(df$列名))
将变量转为因子:
class(df$列名)
df$列名 <-as.factor(df$列名)
class df$列名
4)查看结果/数据分析:summary(变量)
5)数据可视化:interaction.plot(df$列名...)
interaction.plot():绘图函数
三、使用R扩展包
library(包名):函数。载入包
require(包名):函数。
help = (packages = “包名”):函数。
library = (packages = “包名”):函数。查看扩展包的信息
ls(“package:vcd”):函数。查看R扩展包中所有函数
列出已安装包:
install.packages():列出已安装的扩展包
save(Rpack,file = “Rpack.工作目录”)
Rpack
for(i in Rpack)install。packages(i) //for循环
四、R基操
R语言区分大小写
清屏:CTRL+L
查看所有快捷键:Alt+Shift+K
1)设定工作目录:setwd(dir = “磁盘:/一级路径/二级路径/.../工作目录文件名/”)
getwd()/dir():函数。显示当前工作目录
list.files():函数。查看目录下文件
setwd():函数。设置工作目录
<<-:强制赋值给全局变量
ls.str():函数。列出文件及详细信息(不含隐藏文件)
ls(all.names = TRUE):函数。列出所有文件(含隐藏文件)
rm(变量):函数。删除变量
save.image():函数。临时保存文件
q():函数。退出
五、R语言内置数据集
数据集内置在datasets扩展包中
分类:
1)向量;2)因子;3)矩阵、数组;)4)类矩阵;5)数据框;6)类数据库;7)时间序列数据...
1. 数据类型
1)数据结构
数据元素的集合
分类:
数值型、字符串型、逻辑性、日期型
1-1)普通数据结构
向量、标量、列表、数组
1-2)特殊数据结果
Perl中的哈希
python中的字典
C中的指针
2)向量c
集合。一维数组
seq():函数。生成序列
mode():函数。查看数据类型
2-1)向量索引
2-1-1)正整数索引
x <- c(1:100)//创建1-100的向量x
x[-19] //去除第19个元素
增删改查:
添加向量:x[101] <- 101 //要添加的值自定义
删除向量:x <- [c(1,3)]
修改/插入向量:append(c <- x,values = 999,after = 9)//在第9个元素后插入999
查询向量:grep()函数
向量运算:
长向量必须是短向量的整数倍,才能进行运算
相乘:x ** y(或者x^y)
取余:x %% y
除:x %/% y
mean():函数。均值
var():函数。方差
ad():函数。标准差
prod():函数。连乘积
quantile():函数。分位数
%in%:包含
3)矩阵、数组
二维的。需要行列
矩阵的所有数据类型必须一致
heatmap(矩阵):函数。绘制热图
dim():函数。维数
3-1)矩阵索引
m[1,c(2,3)] //第1行,2、3列
矩阵运算:乘法
1)内积
2)外积
4)列表
多种数据类型混合的数据结构
列表不能赋值
列表的访问
1)索引方式
2)$方式
eg: mlist$first
[ ]和[[ ]]
[ ] :输出的是列表的子集。还是列表,不能赋值
[[ ]]:输出的是元素本身类型
5)数据框
本质是列表。列必须命名
每列必须为同一类型
行:观测
列:变量
创建数据框:
数据框名 <- date.frame(变量1,变量2...)//数据框名自定义
date.frame():函数。创建数据框
数据框的访问:
1)索引方式
2)$方式
3)[[ ]] 方式
attach():函数。加载数据框
6)因子
6-1)变量分类
1)名义型变量:无顺序分别。字符串
2)有序型变量:不同值之间有顺序关系。但不是连续的数量变化
3)连续型变量:某范围内任意值。数值类
6-2)因子factor
名义型变量、连续型变量
本身是向量
水平:
名义型变量和连续型变量(因子)的变量值
因子:
水平值构成的向量
因子的作用:
分类;计算频率、频数
7)字符串
支持正则表达式
nchar():函数。统计字符串长度。统计每个字符串的长度
length():函数。统计长度。统计有多少个元素
paste():函数。粘贴、合并字符串
substr():函数。提取字符
toupper():函数。所有字符转大写
tolower():函数。所有字符转小写
gsub():函数。参数为/U时,首字母转大写;参数为/L时,首字母转小写
grep():函数。查找字符串(支持正则表达式)
match():函数。查找字符串(不支持正则表达式)
strsplit():函数。分割字符串。返回值时列表
笛卡尔积::
生成两个字符串的所有可能结果的组合
outer()函数
8 )日期和时间
时间序列
Sys.Date():函数。查看当前时间
strftime():函数。查看更多格式转化
六、获取数据
1. 获取数据
1)键入
创建数据框:通过data.frame()函数创建
往数据框中键入数据
或者通过fix()函数直接键入数据
2)读外部存储
3)访问数据库
ODBC(开放数据库连接)
安装RODBC扩展包:install.packages(“RODBC”)
2. 读入文件
1)纯文本文件
read.table():函数。将文件复制给对象
head():函数。截取文件头部行数,默认6行
tail():函数。截取文件尾部行数,默认6行
2)网络文件
read.table():函数。内有多个参数,使用时请将第一个参数设置为读入的网络文件的url
read.Clipboard():函数。读取剪切板的内容
3. 写入文件
1)对象是数据框:write.table()函数
2)写入到csv文件:write.csv()函数
csv文件的分隔符是逗号“,”,文件的后缀是“.csv”
添加row.names = FALSE参数后,不会将行号写入到文件中
或者负索引删除第一行效果一样
4. 读入excel文件
read.csv()函数
需要安装XLConnect扩展包
XLConnect扩展包依赖Java,计算机需要配置Java的运行环境(搜索教程自行配置)
安装XLConnect扩展包步骤:
1)安装XLConnect扩展包:install.packages(“XLConnect”)
2)导入XLConnect扩展包:library(XLConnect)
3)使用XLConnect扩展包(2种使用方式)
第1种使用方式(2步法读取整个工作簿):
第一步:loadWorkbook(“文件名”)
第二步:readWorksheet()函数 //参数查看帮助文档
第2种使用方式(1步法)
readWorksheetFromFile()函数
4)将数据导入excel中(2种方式)
第一种方式(4步法)
steps:
(1)创建文件:loadWokbook(“文件名”,create = T)
(2)在文件中创建工作簿:createSheet(变量名,“表名”)
(3)将数据保存到工作簿:writeWorksheet(变量名,data = 数据,sheet = 表名)
(4)将工作簿保存为excel:saveWorksheet(变量名)
示例:
wb <- loadWokbook(”file.xlsx“,create = T)
createSheet(wb,“Sheet 1”)
writeWorksheet(wb,data = mtcars,sheet = “Sheet 1”)
saveWorksheet(wb)
1步:
writeWorksheetToFile(“file1.xlsx”,data = mtcars,sheet = “Sheet 1”)
5. 读写R格式文件
RDS文件:保存R的单个对象
save RDS()函数
save RDS(数据.file = “数据.RDS”)
七、缺失数据
R中NA代表缺失数据
1. 处理缺失值
na.omit()函数
示例:
c <- c(NA,1:20,NA)//创建一个带有缺失值的向量c
d <- na.omit(c)//对c向量进行缺失值的处理
2. 函数
library(VIM)
is.na(sleep):测试sleep数据集
rowSums(sleep):计算每行缺失值数
colSums(sleep):计算每列缺失值数
NaN:表示缺失数据。通过is.nan()识别
Inf:表示无穷。通过is.inf()识别
八、 数据格式转换
读取excel文件:使用xlsx扩展包
1. 矩阵转化为数据框
类型转换:as.xx
变量名 <- as.data.frame(矩阵类型的数据)
1)取出某行:
["行号“,]
eg:state[”Nevada“,]
逗号”,“不可省略
2)取子集操作
1.索引
who1 <- who[c(1,3,5,7),c(2,4,6,8)]
c(1,3,5,7):行
c(2,4,6,8):列
subset()函数
sample()函数:随机抽样
3)删除固定行
1.负索引方式
2.将NULL赋值给需要删除的行
4)数据框行、列的添加
1.用data.frame重新生成一个数据框
2.cbind()、rbind()
可用于矩阵
对于rbind():
要求:新数据与原数据具有相同类名
5)删除重复项
duplicate()函数:判断重复值
原数据取反:取出非重复项
6)数据框的翻转(行、列互换)
t()函数:行、列互换
rev()函数:单独行/列翻转。行头变行尾,行尾变行头(列同理)
7)修改数据框中的值
transform()函数
order()/sort():排序
8)数据的中心化和标准化
中心化:每个元素减去平均值
标准化:中心化的标准差(ad()函数可求标准差)
9)reshape2扩展包
1.安装reshape2扩展包:install.packages(“reshape2”)
2.导入reshape2扩展包:library(reshape2)
“~”符号在R中表示相关联
10)tidyr扩展包、dplyr扩展包
1.安装tidyr扩展包、dplyr扩展包:install.packages(“tidyr”,“dplyr”)
2.导入:library(tidyr)
tidy data:
每行代表观测
每列代表变量
行、列确定唯一值
4个重要函数
gather():宽数据转为长数据
spread():长数据转为宽数据
union():多列合为一列
separate():一列分为多列
%>%符号:将A的输出作为B的输入
1)dplyr的部分函数
左连接(以左表为基础):
dplyr::left_join(a,b,by ="x1") //a为左表,b为右表
右连接(以右表为基础):
dplyr::right_join(a,b,by ="x1") //a为左表,b为右表
内连接(x1的交集)
dplyr::innr_join(a,b,by ="x1") //a为左表,b为右表
全连接(x1的并集)
dplyr::full_join(a,b,by ="x1") //a为左表,b为右表
半连接(a、b交集)
dplyr::semi_join(a,b,by ="x1") //a为左表,b为右表
反连接(a、b补集)
dplyr::anti_join(a,b,by ="x1") //a为左表,b为右表
interset();取交集
dplyr::union_all():取并集
dplyr::union():取非冗余的并集
setdiff(first,second):取first的补集
九、R函数
1.独立性检验
1)卡方检验:chisq.test()函数
2)fisher检验:fisher.test()函数
3)C-M-H检验
2.假设检验
原假设——没有发生
备择假设——发生了
假设原理
2个名义变量在第3个变量的每一层中都是独立的
判断:p-value
p-value越小,越不靠谱
不拒绝原假设——p > 0.05
拒绝原假设——p < 0.05
3.相关性分析
衡量指标:各种相关系数
cor()函数
偏相关系数
偏相关:控制一个或多个变量
其余变量之间的相互关系
ggm扩展包
4.相关性检验
cor.test()函数
置信区间:概率 + 概率范围(eg:1/2 加 1/2的概率范围在40%~50%)
corr.test()函数
pcor.test()函数
非参数检验 + 参数检验:构成了统计推断的基本内容
5. 绘图函数
1)基础绘图系统
(1)高级绘图
一步到位,直接绘图
(2)低级绘图
在高级绘图的基础上加工,还需要其他操作
2)lattice扩展包
3)ggplot2扩展包
4)grid扩展包
重要绘图函数
1)plot()
2)par()
S3系统:属性、方法、泛型函数
6.线性回归
回归:一个或多个自变量,预测因变量
普通最小二乘回归法(OLS)
lm()函数
lm(因变量,自变量)
残差:真实值 ➖预测值(残差越小,模型越精确)
summary():展示详细结果
更多
需要了解更多函数的参数信息,直接查看帮助文档
?函数名:查看相关帮助文档。函数名根据需要输入
需要了解更多函数的扩展包信息
help(packages = “包名”):查看扩展包的帮助文档