1. 数据框:提取元素
> gene_exp
Sample1 Sample2 Sample3
gene1 1 2.0 0.3
gene2 4 5.0 6.0
gene3 7 0.8 9.0
gene4 10 11.0 12.0
> gene_exp[2,1] # 提取第二行,第一列的元素
[1] 4
> gene_exp[2,3] # 提取第二行,第三列的元素
[1] 6
> gene_exp[2,] # 提取第二行的所有列
Sample1 Sample2 Sample3
gene2 4 5 6
> gene_exp[,2] # 提取第二列的所有元素
[1] 2.0 5.0 0.8 11.0
> gene_exp[2] # 提取第二列(不输入行号,默认提取列)
Sample2
gene1 2.0
gene2 5.0
gene3 0.8
gene4 11.0
> gene_exp[1:3] # 提取第1到3列
Sample1 Sample2 Sample3
gene1 1 2.0 0.3
gene2 4 5.0 6.0
gene3 7 0.8 9.0
gene4 10 11.0 12.0
> gene_exp[c(2:3)] # 提取2到3列
Sample2 Sample3
gene1 2.0 0.3
gene2 5.0 6.0
gene3 0.8 9.0
gene4 11.0 12.0
> gene_exp[c(1,3)] # 提取第1列和第3列
Sample1 Sample3
gene1 1 0.3
gene2 4 6.0
gene3 7 9.0
gene4 10 12.0
> gene_exp$Sample2 # 使用$列名提取某一列
[1] 2.0 5.0 0.8 11.0
2.直接使用数据框中的变量
我们可以使用R语言提取数据框中的数据进行画图:
> gene_exp
Sample1 Sample2 Sample3
gene1 1 2.0 0.3
gene2 4 5.0 6.0
gene3 7 0.8 9.0
gene4 10 11.0 12.0
# 以第一列和第三列数据绘制散点图
> plot(gene_exp$Sample1,gene_exp$Sample3)
绘制效果如下:
但是,上述代码中gene_exp会重复出现,使代码非常不优雅,可通过attach命令,将数据框的名称添加到搜索目录中,我们在通过plot命令画图时,只需要输入列名即可:
> attach(gene_exp)
> plot(Sample1,Sample3)
> detach(gene_exp) #画图完成后,使用detach()命令,将gene_exp从R的搜索目录中去掉
当两个数据框中的列名相同时,同时attach()会报错:
> gene_exp3<-gene_exp[c(1,3)] # 将gene_exp的第一列和第三列定义为gene_exp3
> gene_exp3
Sample1 Sample3
gene1 1 0.3
gene2 4 6.0
gene3 7 9.0
gene4 10 12.0
> attach(gene_exp)
> attach(gene_exp3) # attach gene_exp3时报错
The following objects are masked from gene_exp:
Sample1, Sample3
我们可以通过R的with命令避免上述情况的发生:
with(gene_exp, plot(Sample1,Sample2))
运行结果如下: