一、取数据子集
![](https://i-blog.csdnimg.cn/blog_migrate/f657b3213dfca39feb28290fde427b53.png)
- 行列索引
#1到30行,所有列的数据
who1 <- who[1:30,]
2. 使用sample()随机取数据
#有放回取x中的60个数据
x <- 1:100
sample(x,60,replace = T)
#随机选取数据框的子集
who[sample(who$CountryID,30,replace = F),]
3. 连接数据框
data.frame(USArrests,state.division)
4. 去除重复
unique()
二、数据框的翻转
1. 整个翻转
mtcar <- t(mtcars)
2.翻转某一列
三、排序
sort、order、rank
sort用于向量的排序
order返回对应值所在的位置
#按某一列中的大小排序
mtcars[order(mtcars$mpg),]
#与默认相反顺序
mtcars[order(-mtcars$mpg),]
四、计算
apply()
五、数据的中心化和标准化
scale(state.x77,center = T,scale = T)
六、tidyr
数据融合
有时候我们遇到的数据是不整洁的,而tidy data要求每一列表示一个变量,每一行表示一个观测值,通过变量和观测值确定唯一数据。通过tidyr包可以实现。
以R中内置的数据集mtcars为例,该数据框是典型的tidy数据。
取部分数据进行演示
使用gather()进行融合
使用spread()进行拆分,一刚刚融合后的数据为例。
七、dplyr
- 过滤数据
# 过滤出长度大于7的数据
dplyr::filter(iris,Sepal.Length>7)
- 去除重复值
dplyr::distinct(rbind(iris[1:10,],iris[1:15,]))
- 取出固定行数据
dplyr::slice(iris,10:15)
- 随机取样
#随机取出10行
dplyr::sample_n(iris,10)
- 按比例随机抽取
dplyr::sample_frac(iris,0.1)
- 排序
#按照花萼长度进行排序
dplyr::arrange(iris,Sepal.Length)
统计函数
#计算花萼的平均值
summarise(iris,avg=mean(Sepal.Length))
#计算花萼总长度
summarise(iris,avg=sum(Sepal.Length))
链式操作符 %>%
用于将一个函数的输出传递给下一个函数,作为下一个函数的输入。Rstudio中使用Ctrl+shift+M快捷键
mutate,新增变量
双表格操作
左链接
右链接
全链接,取并集