所有资料来源于生信技能树
1. 向量

谁在逗号后面,出来的结果是谁的下标

a <- c("11","22","33","44","55")
b <- c("22","11","33","44","55")
match(a,b)#出来b中的字符在a中的顺序
#[1] 2 1 3 4 5
b[match(a,b)]#将b按照a的顺序进行排序
#[1] "11" "22" "33" "44" "55"
-
向量讲完了
2.数据框、矩阵和列表
-
(1)矩阵


长度相同、数据类型相同的向量可以组合成矩阵

矩阵中只有一种数据类型
-
(2)数据框——Dataframe

长度相同、数据类型不同或相同的向量可以组合成数据框

-
(3)列表——List

长度可以不同、数据类型可以不同的向量组合
列表中可以包含向量、矩阵、数据框或小列表
-
2.1数据框——Dataframe
options(stringsAsFactors = F)
- 在4.0以前的版本要运行这行代码
- 在4.0以后的版本默认是这个设置,可以不运行这行代码

-
(1)数据框的属性

dim(df)#显示df几行几列
nrow(df)#显示df几行
ncol(df)#显示df几列

rownames(df)#显示df的行名
colnames(df)#显示df的列名
-
(2)数据框取子集
df[2,2]#取df的第2行、第2列的向量
df[2,]#取df的第2行
df[,2]#取df的第2列
df[c(1,3),1:2]#取第1、3行和1-2列的向量

df[,-ncol(df)]#取除最后一列的所有列
学会用函数和代码
df[3]#取第3列,仍是数据框
df[,3]#取第3列,但变为向量
df$xx#取df数据框的xx列
-
(3)数据框修改

练习题3-2

-
(4)数据框查看前/后几行
head(df)#只取前几行查看,默认是前6行
tail(df)#只取最后几行查看
head(df,3)#只取前3行查看
df[1:3,1:3]#只取df前3行/3列查看
-
(5)查看数据框的数据类型和具体内容
str(df)#查看df的数据类型和具体内容
num:numeric数值型
int:interge整数型
factor:因子型
chr:character文本型
-
(6)去除含有缺失值的行
na.omit(df)#去除含有缺失值的行

-
(7)两个表格的连接

①按列合并
cbind(df)#按照列进行合并两个表格
②按行合并
rbind(df)#按照行进行合并两个表格
③不同行、列表格的连接
merge(df1,df2,by="name")#按照共同列进行合并两个表格

④不同列名表格的连接

不同列名的表格进行合并code
merge(x=df1,y=df2,by.x="name",by.y="NAME")

-
2.2矩阵
-
(1)新建和取子集

矩阵不能用$取子集
-
(2)矩阵的转置和转换
t(matrix(1:9,nrow=3))


-
(3)矩阵画热图

#R语言中会自动聚类,如果不想聚类,需要自定义设置

-
2.3列表
-
(1)列表新建和取子集

左边框是列表中元素的名字
右边框是元素的内容

l[[2]]"#取列表l的第2个元素,根据图中可知为df"
l$df"#取列表l的df元素"
l2 <- l[3]#一个中括号是取列表中的小列表
class(l2)
#[1] "list"
l3 <- l[[3]]#两个中括号是取列表中的元素
class(l3)
#"numeric"
用杀牛的刀杀鸡,咋的了,你管得着吗你——花花
老板,我不放香菜——花花
网友评论