#学习这部分内容之前先加载这个包哦
library(dplyr)
#这边随便用内置数据生成一个数据框
test <- iris[c(1:2,51:52,101:102),]
#去掉行名,这一步的目的是为了调整编号哦,大家可以看一下不去掉会怎么样
rownames(test) =NULL
test
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 7.0 3.2 4.7 1.4 versicolor
## 4 6.4 3.2 4.5 1.5 versicolor
## 5 6.3 3.3 6.0 2.5 virginica
## 6 5.8 2.7 5.1 1.9 virginica
# arrange()函数默认是升序,调整某一列的数值排序,会对整个数据框进行相应调整
arrange(test,Sepal.Length)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 4.9 3.0 1.4 0.2 setosa
## 2 5.1 3.5 1.4 0.2 setosa
## 3 5.8 2.7 5.1 1.9 virginica
## 4 6.3 3.3 6.0 2.5 virginica
## 5 6.4 3.2 4.5 1.5 versicolor
## 6 7.0 3.2 4.7 1.4 versicolor
# arrange()降序
arrange(test,desc(Sepal.Length))
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 7.0 3.2 4.7 1.4 versicolor
## 2 6.4 3.2 4.5 1.5 versicolor
## 3 6.3 3.3 6.0 2.5 virginica
## 4 5.8 2.7 5.1 1.9 virginica
## 5 5.1 3.5 1.4 0.2 setosa
## 6 4.9 3.0 1.4 0.2 setosa
# distinct,数据框按照某一列去重复
distinct(test,Species) # 该函数默认只保留去重复那一列
## Species
## 1 setosa
## 2 versicolor
## 3 virginica
# 若想保留所有列可以通过修改.keep_all这个参数
distinct(test,Species,.keep_all = T)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 7.0 3.2 4.7 1.4 versicolor
## 3 6.3 3.3 6.0 2.5 virginica
# 这边比较简单直接看代码和图应该就能知道其表达
# 若想保存这个操作需要赋值哦
x = mutate(test,new = Sepal.Length * Sepal.Width);x
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species new
## 1 5.1 3.5 1.4 0.2 setosa 17.85
## 2 4.9 3.0 1.4 0.2 setosa 14.70
## 3 7.0 3.2 4.7 1.4 versicolor 22.40
## 4 6.4 3.2 4.5 1.5 versicolor 20.48
## 5 6.3 3.3 6.0 2.5 virginica 20.79
## 6 5.8 2.7 5.1 1.9 virginica 15.66
# 由于data.frame[]中括号就能做到这些事情,所以这两个函数就比较鸡肋
# 仅演示一些基础操作
select(test,2:3)
## Sepal.Width Petal.Length
## 1 3.5 1.4
## 2 3.0 1.4
## 3 3.2 4.7
## 4 3.2 4.5
## 5 3.3 6.0
## 6 2.7 5.1
select(test,-5)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 5.1 3.5 1.4 0.2
## 2 4.9 3.0 1.4 0.2
## 3 7.0 3.2 4.7 1.4
## 4 6.4 3.2 4.5 1.5
## 5 6.3 3.3 6.0 2.5
## 6 5.8 2.7 5.1 1.9
filter(test,Sepal.Length > 6) # filter后面只能是逻辑值
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 7.0 3.2 4.7 1.4 versicolor
## 2 6.4 3.2 4.5 1.5 versicolor
## 3 6.3 3.3 6.0 2.5 virginica
# 1.多次赋值,产生多个中间的变量
# 这种代码对于小白很友好,易懂且出了问题也不难检查
x1 = select(iris,-5)
x2 = as.matrix(x1)
x3 = head(x2,50)
pheatmap::pheatmap(x3)
# 2.嵌套式代码
pheatmap::pheatmap(head(as.matrix(select(iris,-5)),50))
# 3.利用管道符号 %>%
# 管道符号的作用:将符号前所有代码的计算结果,传递给符号后的函数并作为其第一个参数
iris %>%
select(-5) %>%
as.matrix() %>%
head(50) %>%
pheatmap::pheatmap()
# 1、2、3等价,根据实际情况需要自行选择即可
引用自生信技能树
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。