从我们
生信技能树
历年的几千个马拉松授课学员里面募集了一些优秀的创作者,某种意义来说是传承了我们生信技能树的知识整理和分享的思想!
今天的是三周合计15天的数据挖掘授课学员一点一滴整理的授课知识点笔记哦,还有互动练习题哈,欢迎大家点击文末的阅读原文去关注我们学员的公众号哦!
1、向量Vector——一维
向量中只允许存在一种数据类型,即使你写了多种数据类型也会被同化。
a 1,5,'a',T)
class(a)
# "character"
2、"表格"(矩阵matrix)——二维
矩阵只允许一种数据类型
多个矩阵组成一个数组(array)
(一)matrix
(二)array
2.1 矩阵新建和取子集
矩阵的取子集不能用$。
m[2,]
# 2 5 8
m[,1]
# 1 2 3
m[2,3]
# 8
m[2:3,1:2]
2.2
矩阵的转置
和转换
# 转置
t(m)
# 转换
as.data.frame(m)
tips:R语言里的修改,都要赋值,没有赋值就没有发生过。
2.3 矩阵画热图
pheatmap::pheatmap(m)
pheatmap::pheatmap(m, cluster_cols = F,cluster_rows = F)
3、数据框data.frame——二维
每列只允许一种数据类型,数据框的每一列和每一行都是一个向量。
3.1 数据框的来源
内置数据:
iris
letters
LRTTERS
volcano
新建数据框:
df 'geme', 1:4),
change = rep(c('up', 'down'), each = 2),
score = c(2,6,9,2))
从文件中读取数据框:
数据框属性:
dim(df)
# 4 3
colnames(df)
# "gene" "change" "score"
rownames(df)
# "1" "2" "3" "4"
nrow(df)
# 4
ncol(df)
# 3
数据框取子集:
df$score
df[2,1]
df[1,]
df[,4]
df[c(1,3), 1:2]
第二种方法如果用在向量中会报错,因为向量只有一个维度,只能x[1]
df[,'gene']
df[,c('gene','score')]
k $scores>0
df[k,]
df$gene[k]
3.2 数据框的修改
df$p.value
df$change 'up', 'no', 'down', 'no')
修改列名和行名:
rownames(df) 'rol1', 'rol2', 'rol3', 'rol4')
colnames(df)[2] 'change'
3.3 两个数据框的连接
(一)有共同的列名
merge_df = merge(df1, df2, by='name')
只合并两个数据框中共有的name。
(二)没有共同列名
方法一、手动修改列名,再使用merge()合并
colnames(df3)[1] 'name'
merge(df1, df3, by='name')
方法二、左连接、右连接、取交集
merge(df1, df3, by.x = 'name', by.y = "NAME")
# df1对应by.x;df3对应by.y
merge(df1, df3, by = 1)
4、列表list:可装万物
列表可以包含数据框、矩阵、列表、向量