创建数据框,然后根据给定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) #输出文件时,去掉行名