大家好,小白最近在做用R语言合并GEO数据下载的单个测序文件成矩阵,
在输入命令outTab=outTab[,seq(1,ncol(outTab),2)]时报错
Error in seq.default(1, ncol(outTab), 2) : wrong sign in 'by' argument,请问是啥意思啊?
谢谢大家~
全部命令如下:
library(limma) #引用包
geneCol=2 #基因名称列号
expCol=6 #表达数据列号
setwd("C:\\Users\\Administrator\\Desktop\\asthmadata") #设置工作目录
#读取目录下的文件
files=dir()
files=grep(".txt$",files,value=T)
geneList=list()
expList=list()
for(i in files){
if(i=="expMatrix.txt"){
next
}
#读取文件,并对输入文件整理
sampleName=i
sampleName=gsub("\\.txt","",sampleName)
rt=read.table(i,sep="\t",header=T,check.names=F)
rt=rt[,c(geneCol,expCol,expCol)]
rt=as.matrix(rt)
rownames(rt)=rt[,1]
exp=rt[,2:ncol(rt)]
rowNames=rownames(exp)
colNames=colnames(exp)
dimnames=list(rowNames,colNames)
data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)
data=avereps(data)
colnames(data)[1]=sampleName
geneList[[sampleName]]=row.names(data)
expList[[sampleName]]=data
}
#数据合并
interGenes=Reduce(intersect,geneList)
outTab=data.frame()
count=0
for(j in names(expList)){
count=count+1
matrix=expList[[j]]
if(count==1){
outTab=matrix[interGenes,]
}else{
outTab=cbind(outTab,matrix[interGenes,])
}
}
#输出结果表格
outTab=outTab[seq(1,ncol(outTab),2)] ##这里出错
out=cbind(ID=row.names(outTab),outTab)
write.table(out,file="expMatrix.txt",sep="\t",quote=F,row.names=F)
outTab=outTab[seq(ncol(outTab),1,2)]
附件里是读取文件
附件列表