背景
数据框是一种表格式的数据结构,属于一种二维表,分为行和列。数据框旨在模拟数据集,与其他统计软件例如 SAS 或者 SPSS 中的数据集的概念一致。数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。不同的行业对于数据集的行和列叫法不同。在一个数据框中,每一行的元素个数相同,每一列元素个数也相同,每一列的数据类型一致,都为一个向量,每一行内容还是一个数据框。数据框是 R 中使用最广泛的一种数据格式。
一、创建数据框
利用 data.frame()函数创建数据框。
代码语言:javascript复制a <- 1:5
b <- letters[1:5]
c <- c('one','two','three','four','five')
data.frame(a,b,c)
a <- 1:6
data.frame(a,b,c)
# Error in data.frame(a, b, c) :
# arguments imply differing number of rows: 6, 5
二、数据框索引
1. 中括号
2. 名称
3. dollar符
4. 逻辑值
代码语言:javascript复制#数据框 索引
colnames(x)
x$City
x$Income
x$Province
#练习
x<- read.csv('homo_length.csv')
class(x)
x <- x[1:24,]
colnames(x)
x$chr
x$length
barplot(height = x$length,
names.arg = x$chr,
las = 2,
col = rainbow(4),
border = F)
三、利用 R 实现 vlookup
代码语言:javascript复制rm(list = ls())
#Excel 函数:=VLOOKUP($A2,Sheet1!$A$1:$I$201,COLUMN(Sheet1!A2),FALSE)
#读入 200 个基因的列表 bigtable
genes200 <- read.csv("200genes.csv",header = T,stringsAsFactors = F,row.names = 1)
#读入 121 个基因的 list small list
genes121 <- read.csv("121genes.csv",header = T,stringsAsFactors = F)
head(genes200)
head(genes121)
genes200["CLU",]
#修改 gene table 行名,前面row.names=1已经改了
# rownames(genes200) <- genes200$gene
# genes200["CLU",]
# genes200[c("CLU","DCN"),]
#去除重复 gene ID
gene93 <- unique(genes121$gene)
#利用数据框的访问功能,一次实现 Excel Vlookup 功能
dta <- genes200[gene93,]
dta
#数据中包含没有检索到的 gene ID,返回值为 NA,利用 na.omit 删除包含 NA 的行
dta <- na.omit(dta)
rownames(dta) <- 1:nrow(dta)#86个行数重命名
write.csv(dta,file = "gene93.csv",row.names = F)
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。
代码语言:javascript复制sx.voiceclouds.cn
有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。