• 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) #输出文件时,去掉行名
  • 相关阅读:
    Python itsdangerous 生成token和验证token
    CentOS在VMware中 网络配置
    Django 框架 django的请求生命周期
    Django 框架 数据库操作2
    Django 框架 Form组件
    Django 框架 数据库操作
    hdu 5008 查找字典序第k小的子串
    hdu 3518 后缀数组
    hdu 3948 后缀数组
    hdu 4283 区间dp
  • 原文地址:https://www.cnblogs.com/SWTwanzhu/p/14330683.html
Copyright © 2020-2023  润新知