文章目录
生物技能树(第三节课)
数据框、矩阵和列表
R第三节
一、基本概念
1.Vector向量–一维,数值型,数字型和逻辑型只能是一种
2.matrix 矩阵-二维,只允许一种数据类型,用的最多的是数值型
3.data.frame数据框-二维。不同列数据类型可以不同,但每列只允许一种数据类型,矩阵和数据框的格式不一样
4.list列表:可装万物,可以把不同数据放一起变成新的数据,使用场景(三次差异分析的结果放在一个列表里方便进行批量处理),“表格”二维
二、数据框来源
内置数据:
iris
letters
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
## [13] "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x"
## [25] "y" "z"
LETTERS
## [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L"
## [13] "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X"
## [25] "Y" "Z"
volcano
将数据用表格形式呈现
x = volcano
heatmap(volcano)
1.新建数据框
代码如下(示例):
#1.新建和读取数据框
df1 <- data.frame(gene = paste0("gene",1:4),
change = rep(c("up","down"),each = 2),
score = c(5,3,-2,-4))
df1
df2 <- read.csv("gene.csv")
df2
2.从文件中读取
代码如下(示例):
##文件需要放在工作过目录下才可以
##read.csv()是一个函数,用于从csv文件中读取数据,并将其加载到一个数据结构中,通常是数据框(DataFrame)。
> df2 <- read.csv("gene.csv")
> df2
gene change score
1 gene1 up 5
2 gene2 up 3
3 gene3 down -2
4 gene4 down -4
3.数据框的属性
> #3.数据框属性
dim rownames colnames
> #数据框属性:dim是维度的意思,行数和列数
> dim(df1)
[1] 4 3
> nrow(df1)
[1] 4
> ncol(df1)
[1] 3
> #提取行名和列名
> rownames(df1)
[1] "1" "2" "3" "4"
> colnames(df1)
[1] "gene" "change" "score"
4.数据框取子集
#单取一行是数据框,取多行多列仍是个数据框,单取一列是向量
> df1$gene #表示提取了数据框 df1 中名为 "score" 的列,删掉score,按tab键试试
[1] "gene1" "gene2" "gene3" "gene4"
> mean(df1$score)
[1] 0.5
> ## 按坐标
> df1[2,2]
[1] "up"
> df1[2,]
gene change score
2 gene2 up 3
> df1[,2]
[1] "up" "up" "down" "down"
#换成df1[2],去掉逗号,就可以在单取一列时仍然保持数据框的属性
> df1[c(1,3),1:2]
gene change
1 gene1 up
3 gene3 down
#逗号前是行,逗号后是列,取1和3行,1和2列
> ## 按名字
> df1[,"gene"]
[1] "gene1" "gene2" "gene3" "gene4"
##取多个的时候,就把基因名称组成一个向量,单引号与双引号在此没有区别
> df1[,c('gene','change')]
gene change
1 gene1 up
2 gene2