• R-根据ID提取行信息


    创建数据框,然后根据给定ID提取对应行的信息,特别是给定的ID比较多的时候,其实很简单!

    > patientID <- c("A","B","C","D")
    > age <- c(25,34,44,52)
    > DB <- c("T1","T2","T1","T1")
    > status <-  c("Poor","Improved","Excellent","Por")
    > patientData <- data.frame(patientID,age,DB, status, row.names = patientID)  
    ##直接赋值行号为patientID,,没有row.names = 参数时,默认为1,2,3,4
    ##没有加row.names参数时,也可以rownames(
    patientData) = patientData[,1]
    > patientData
      patientID age DB    status
    A         A  25 T1      Poor
    B         B  34 T2  Improved
    C         C  44 T1 Excellent
    D         D  52 T1       Por

    然后根据输入的ID提取对应信息

    > patientData["D",]
      patientID age DB status
    D         D  52 T1    Por
    > a = c("A","D","C")  ##这样一来,当ID比较多的时候,可以这样!
    > patientData[a,]
      patientID age DB    status
    A         A  25 T1      Poor
    D         D  52 T1       Por
    C         C  44 T1 Excellent

    示例如下:

    我拿一堆蛋白ID(uniprot的accession,比如Q9DAF3之类的)在DAVID跑了GO和KEGG之后,有69蛋白没有富集到任何BP CC MF或者通路,是一些功能基本没有得到研究的蛋白

    这一堆蛋白有的上调有的下调,有文件列出,DAVID输入的是蛋白list,所以输出的69个的没富集的蛋白有哪些是上调哪些是下调的呢?一个个去找肯定不现实

    ##read.table()的command.char = "X",表示以X开头的行不用读取
    setwd("E:/实验/分离manchette/ms/数据处理/") #工作目录定位到当前文件夹
    a = read.csv(file = "上下调基因合集.csv",sep =",") #read.csv()默认header= T
    View(a)
    dim(a)
    b = read.csv(file = "DAVID导出的未被富集的69个蛋白ID及其信息.csv",sep = ",") #读取DAVID的输出文件,复制文本,粘贴到excel中后另存为csv文件
    c = b$ID #获取这69个ID
    rownames(a) = a$ID #修改a文件的行名为为第一列内容
    d = a[c,] #利用行名访问行,并取出对应行
    View(d)
    dim(d)
    write.csv(d,file = "69个未分类的蛋白上下调情况.csv",row.names = F) #输出文件时,去掉行名
  • 相关阅读:
    mysql、mongodb、redis区别
    Redis面试题
    【开发提效】开发提效技巧
    【代码规范】16条军规
    mysql数据库连接字符串
    mysql数据库连接字符串
    好用的api接口
    node + express + vue
    跨源资源共享(CORS)
    fehelper
  • 原文地址:https://www.cnblogs.com/SWTwanzhu/p/14330683.html
Copyright © 2020-2023  润新知