认识数据框

2022-10-25 19:46:06 浏览数 (2)

背景

数据框是一种表格式的数据结构,属于一种二维表,分为行和列。数据框旨在模拟数据集,与其他统计软件例如 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

有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。

0 人点赞