数据框、矩阵和列表20230202

2023-02-03 11:59:58 浏览数 (1)

一、向量、矩阵、数据框和列表的区别

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

(使用

0 人点赞