R code question?

When I run the R language, the following error occurs, how do I fix it?

#install.packages("survival")
> 
> library(survival)             #引用包
> inputFile="expTime.txt"       #输入文件
> pFilter=0.001                #显著性过滤条件
> setwd("C:\\Users\\ASUS\\Desktop\\tmeimmune\\22.cox")       #设置共工作目录
> 
> #读取输入文件
> rt=read.table(inputFile,header=T,sep="\t",check.names=F,row.names=1)
> rt$futime=rt$futime/365           #以年为单位,除以365
> 
> outTab=data.frame()
> for(gene in colnames(rt[,3:ncol(rt)])){
+     #单因素cox分析
+     cox=coxph(Surv(futime, fustat) ~ rt[,gene], data = rt)
+     coxSummary = summary(cox)
+     coxP=coxSummary$coefficients[,"Pr(>|z|)"]
+     
+     #KM检验,后续需要可视乎,要和生存相关
+     group=ifelse(rt[,gene]<=median(rt[,gene]),"Low","High")
+     diff=survdiff(Surv(futime, fustat) ~ group,data = rt)
+     pValue=1-pchisq(diff$chisq,df=1)
+     
+     #保存满足条件的基因
+     if((pValue<pFilter) & (coxP<pFilter)){
+         outTab=rbind(outTab,
+                      cbind(gene=gene,
+                            KM=pValue,
+                            HR=coxSummary$conf.int[,"exp(coef)"],
+                            HR.95L=coxSummary$conf.int[,"lower .95"],
+                            HR.95H=coxSummary$conf.int[,"upper .95"],
+                            pvalue=coxP) )		
+     }
+ }
*There were 50 or more warnings (use warnings() to see the first 50)*
> #输出基因和P值表格文件
> write.table(outTab,file="cox.result.txt",sep="\t",row.names=F,quote=F)
> 
> #绘制森林图
> #读取输入文件
> rt <- read.table("cox.result.txt",header=T,sep="\t",row.names=1,check.names=F)
Error in read.table("cox.result.txt", header = T, sep = "\t", row.names = 1,  : 
  no lines available in input
> gene <- rownames(rt)
> hr <- sprintf("%.3f",rt$"HR")
> hrLow  <- sprintf("%.3f",rt$"HR.95L")
> hrHigh <- sprintf("%.3f",rt$"HR.95H")
> Hazard.ratio <- paste0(hr,"(",hrLow,"-",hrHigh,")")
> pVal <- ifelse(rt$pvalue<0.001, "<0.001", sprintf("%.3f", rt$pvalue))
> 
> #输出图形
> pdf(file="forest.pdf", width = 7,height = 6)
> n <- nrow(rt)
> nRow <- n+1
> ylim <- c(1,nRow)
> layout(matrix(c(1,2),nc=2),width=c(3,2))
> 
> #绘制森林图左边的基因信息
> xlim = c(0,3)
> par(mar=c(4,2.5,2,1))
> plot(1,xlim=xlim,ylim=ylim,type="n",axes=F,xlab="",ylab="")
> text.cex=0.8
> text(0,n:1,gene,adj=0,cex=text.cex)
> text(1.5-0.5*0.2,n:1,pVal,adj=1,cex=text.cex);text(1.5-0.5*0.2,n+1,'pvalue',cex=text.cex,font=2,adj=1)
Error in text.default(1.5 - 0.5 * 0.2, n:1, pVal, adj = 1, cex = text.cex) : 
  'labels'长度不能设成零
> text(3,n:1,Hazard.ratio,adj=1,cex=text.cex);text(3,n+1,'Hazard ratio',cex=text.cex,font=2,adj=1,)
> 
> #绘制森林图
> par(mar=c(4,1,2,1),mgp=c(2,0.5,0))
> xlim = c(0,max(as.numeric(hrLow),as.numeric(hrHigh)))
Warning message:
In max(as.numeric(hrLow), as.numeric(hrHigh)) :
  no non-missing arguments to max; returning -Inf
> plot(1,xlim=xlim,ylim=ylim,type="n",axes=F,ylab="",xaxs="i",xlab="Hazard ratio")
Error in plot.window(...) : 'xlim'值不能是无限的
> arrows(as.numeric(hrLow),n:1,as.numeric(hrHigh),n:1,angle=90,code=3,length=0.05,col="darkblue",lwd=2.5)
Error in arrows(as.numeric(hrLow), n:1, as.numeric(hrHigh), n:1, angle = 90,  : 
  不能将零长度的座标同其它长度的座标混合在一起
> abline(v=1,col="black",lty=2,lwd=2)
> boxcolor = ifelse(as.numeric(hr) > 1, 'red', 'green')
> points(as.numeric(hr), n:1, pch = 15, col = boxcolor, cex=1.3)
Error in xy.coords(x, y) : 'x' and 'y' lengths differ
> axis(1)
> dev.off()
null device 
          1

Hello.
Thanks for providing code , but you could take further steps to make it more convenient for other forum users to help you.

Share some representative data that will enable your code to run and show the problematic behaviour.

You might use tools such as the library datapasta, or the base function dput() to share a portion of data in code form, i.e. that can be copied from forum and pasted to R session.

  • in your case the natural choice would be to sharert after the initial read.table

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.