一、向量、矩阵、数据框和列表的区别
1)向量:一维
2)矩阵:二维,只允许一种数据类型
3)数据框:二维,每列只允许一种数据类型
4)列表:容纳各种数据类型
ps:数据类型的判断:clss()
数据类型的转化:as.data.frame/ as.matrix
二、数据框
(1)数据框的来源:
a 新建
b as.data.frame转化
c 读取表格文件 read.csv()
d 内置数据集如 iris,mtcars
(2)新建数据框:
1、data.frame()
2、read.csv(" ") ⚠️文件在当前的工作路径中可以直接使用文件名,否则需要使用绝对路径,否则就会报错。
(3)数据框的属性
获得行数 nrow()
获得列数 ncol()
获得行名 rownames()
获得列名 colnames()
(4)数据框取子集
>数据框名称 $ 列名 eg. df1$gene
#按坐标 df1[2,2] 取出一个格子
#按行. df1[1, ] 后面空取一行
#按列. df1[ ,2] 前面空取一列
#某几行,几列.
代码语言:javascript复制> df1
gene change score
1 gene1 up 5
2 gene2 up 3
3 gene3 down -2
4 gene4 down -4
> df1[c(1,3),1:2]
gene change
1 gene1 up
3 gene3 down
(取了第一、三行的1~2列)
‼️使用取子集的方法筛选
eg:筛选score大于0的行
代码语言:txt复制> df1[df1$score>0,]
gene change score
1 gene1 up 5
2 gene2 up 3
(先按逻辑取子集,T对应的行留下,F对应的删掉)
(5)数据框修改
1、改一个格
代码语言:javascript复制> df1[3,3]<-5
> df1
gene change score
1 gene1 up 5
2 gene2 up 3
3 gene3 down 5
4 gene4 down -4
(先使用中括号取出来再赋值)
2、改一整列
代码语言:javascript复制> df1$score<-c(12,23,50,2)
> df1
gene change score
1 gene1 up 12
2 gene2 up 23
3 gene3 down 50
4 gene4 down 2
(使用