数据获取
1. 从文件中获取
1) csv格式
read.csv()
read.table()
# readr包
read_csv()
2) Excel
read_excel()
3) spss
read.spss() # foreign包
read_sav() # haven包
4) sas
read_sas()
5) Stata
# haven包
read_dta()
read_stata()
6) MATLAB
# R.matlab包
readMat()
2. 网络爬虫
1) 从网页中获取链接和表格
# XML包
readHTMLTable()
# 注意将https格式的网页链接调整为http
fileURL = "link"
fileURL_new = sub("https", "http", fileURL)
2) 从网页中获取文本
# rvest包
read_html()
html_nodes() 定位
html_text() 获取文本
缺失值处理
1. 缺失值的判别
1) summary()
2) 可视化:VIM包
aggr(): 查看数据缺失值分布
!complete.cases():缺失值输出
matrixplot(): 热力图可视化
is.na() 查看数据缺失值的位置
2. 缺失值的简单处理
2.1 剔除带有缺失值的样本
1) na.omit() 函数
2.2 填补缺失值
计算剔除缺失值后的平均值、中位数等
na.rm = T
1) 平均值:mean()
2) 中位数:median()
3) 众数
table()
Hmisc包,impute() 函数
4) zoo包:na.locf() 使用缺失值的前面或后面的数值填补缺失值
3. 处理缺失值的复杂方法
1) K-近邻填补缺失值
DMwR包
knnImputation()
2) 随机森林填补缺失值
missForest包
missForest()
3) 缺失值的多重插补(重复模拟,蒙特卡洛方法填补)
数据操作
1. 长宽型数据转换
1) tidy包
宽型数据转化为长型数据:gather() 函数
长型数据转化为宽型数据:spread() 函数
2) reshape2包
宽型数据转化为长型数据:melt() 函数
a = melt(data, id = c("Id","Species"), variable.name = "varname", value.name = "value")
参数:id,原始数据中该变量保持不变。
长型数据转化为宽型数据:dcast() 函数
b = dcast(data, Id+Species~varname)
转换时忽略~前的变量
2. 数据分类汇总
1) dplyr包
group_by() 函数
3. 数据属性转换
1) 数据中心化:变量减去它的平均值
scale(data, center = T, scale = F)
2) 数据标准化:变量减去它的平均值然后除以它的标准差
scale(data, center = T, scale = T)
3) min-max标准化(0-1标准化):变量减去它的最小值然后除以它的最大值和最小值的差
4. 数据切分
1) 通过随机数进行切分
2) 使用 carte包按比例切分数据
createDtaPartition(data$var, p=0.7) #70%训练数据集,30%测试数据集
3) K折交叉验证进行随机切分
createFolds(data$var, k=3) 数据均分为3粉的索引