生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

319

主题
发表于 2022-8-22 18:45:35 | 查看: 1142| 回复: 0
背景
       数据框是一种表格式的数据结构,属于一种二维表,分为行和列。数据框旨在模拟数据集,与其他统计软件例如 SAS 或者 SPSS 中的数据集的概念一致。数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。不同的行业对于数据集的行和列叫法不同。在一个数据框中,每一行的元素个数相同,每一列元素个数也相同,每一列的数据类型一致,都为一个向量,每一行内容还是一个数据框。数据框是 R 中使用最广泛的一种数据格式。

一、创建数据框
       利用 data.frame()函数创建数据框。
  1. a <- 1:5
  2. b <- letters[1:5]
  3. c <- c('one','two','three','four','five')
  4. data.frame(a,b,c)
  5. a <- 1:6
  6. data.frame(a,b,c)
  7. # Error in data.frame(a, b, c) :
  8. #   arguments imply differing number of rows: 6, 5
复制代码

二、数据框索引
       1. 中括号
       2. 名称
       3. dollar符
       4. 逻辑值

  1. #数据框 索引
  2. colnames(x)
  3. x$City
  4. x$Income
  5. x$Province
  6. #练习
  7. x<- read.csv('homo_length.csv')
  8. class(x)
  9. x <- x[1:24,]
  10. colnames(x)
  11. x$chr
  12. x$length

  13. barplot(height = x$length,
  14.         names.arg = x$chr,
  15.         las = 2,
  16.         col = rainbow(4),
  17.         border = F)  
复制代码
      


三、利用 R 实现 vlookup

  1. rm(list = ls())
  2. #Excel 函数:=VLOOKUP($A2,Sheet1!$A$1:$I$201,COLUMN(Sheet1!A2),FALSE)
  3. #读入 200 个基因的列表 bigtable
  4. genes200 <- read.csv("200genes.csv",header = T,stringsAsFactors = F,row.names = 1)
  5. #读入 121 个基因的 list small list
  6. genes121 <- read.csv("121genes.csv",header = T,stringsAsFactors = F)
  7. head(genes200)
  8. head(genes121)
  9. genes200["CLU",]
  10. #修改 gene table 行名,前面row.names=1已经改了
  11. # rownames(genes200) <- genes200$gene
  12. # genes200["CLU",]
  13. # genes200[c("CLU","DCN"),]
  14. #去除重复 gene ID
  15. gene93 <- unique(genes121$gene)
  16. #利用数据框的访问功能,一次实现 Excel Vlookup 功能
  17. dta <- genes200[gene93,]
  18. dta
  19. #数据中包含没有检索到的 gene ID,返回值为 NA,利用 na.omit 删除包含 NA 的行
  20. dta <- na.omit(dta)
  21. rownames(dta) <- 1:nrow(dta)#86个行数重命名

  22. write.csv(dta,file = "gene93.csv",row.names = F)
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-12-4 02:12 , Processed in 0.078607 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表