专题2 玩转数据框

2024-04-15 23:48:05 浏览数 (2)

代码语言:r复制
test <- iris[c(1:2,51:52,101:102),]
rownames(test) =NULL # 去掉行名,NULL是“什么都没有”
test
代码语言:r复制
##   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,数据框按照某一列排序

代码语言:r复制
library(dplyr)
arrange(test, Sepal.Length) #从小到大
代码语言:r复制
##   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
代码语言:r复制
arrange(test, desc(Sepal.Length)) #从大到小 注意不是decreasing
代码语言:r复制
##   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,数据框按照某一列去重复

代码语言:r复制
distinct(test,Species,.keep_all = T) # .keep_all = T其余列保留
代码语言:r复制
##   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

mutate,数据框新增一列

代码语言:r复制
mutate(test, new = Sepal.Length * Sepal.Width)
代码语言:r复制
##   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

select选列 filter选行

连续的步骤

代码语言:r复制
# 1.多次赋值,产生多个中间的变量
x1 = select(iris,-5)
x2 = as.matrix(x1)
x3 = head(x2,50)
pheatmap::pheatmap(x3)
代码语言:r复制
# 2. 嵌套,代码不易读
pheatmap::pheatmap(head(as.matrix(select(iris,-5)),50))
代码语言:r复制
# 3.管道符号传递,简洁明了 默认传给后面函数的第一个参数 速度慢
iris %>%
  select(-5) %>%
  as.matrix() %>%
  head(50) %>% 
  pheatmap::pheatmap()

引用自生信技能树

0 人点赞