0

我是 R 新手,正在尝试使用函数 readLines 制作公式,但 R 一直返回相同的错误并且不知道如何修复它。有什么建议么?

我的公式

sam.cover<-function(){
     readLines()->CH
     gsub("00","0,0",CH)->CH
     gsub("01","0,1",CH)->CH
     gsub("10","1,0",CH)->CH
     gsub("11","1,1",CH)->CH
     gsub(" 1;","",CH)->CH
     gsub("00","0,0",CH)->CH
     gsub("01","0,1",CH)->CH
     gsub("01","1,0",CH)->CH
     gsub("11","1,1",CH)->CH
     write.table(CH,"temporaryfile.txt",quo=F,sep="",row=F,col=F)
     as.matrix(read.table("temporaryfile.txt",sep=","))->CH
     matrix(CH,nr=dim(CH)[ 1])->CH
     apply(CH,1,sum)->SUM
     CF<-999
     t<-dim(CH)[ 2]
     for(i in 1:t){
         CF<-c(CF,sum(SUM==i))
     }
     cat("Capture frequencies : ","\n")
     print(rbind(1:i,CF[ -1])->CF)
     f1<-CF[ 2,1]
     f2<-CF[ 2,2]
     f3<-CF[ 2,3]
     cat("Sample coverage estimates : ","\n")
     cat("C1-hat =",1-f1/sum(apply(CF,2,prod)),"\n")
     cat("C2-hat =",1-(f1-2*f2/(t-1))/sum(apply(CF,2,prod)),"\n")
     cat("C3-hat =",1-(f1-2*f2/(t-1)+6*f3/(t-1)/(t-2))/sum(apply(CF,2,prod)),"\n")
 }

我的数据

ide    c1   c2  c3  c4  c5
N19 1   1   1   0   1
N29 0   0   1   1   0
N39 0   0   1   0   1
N49 0   0   0   1   1
N59 0   0   1   0   0

我的错误:

Error in readLines(histoire.inp) : 'con' is not a connection
4

1 回答 1

1

readLines参数在 a 上运行connection,因此如果您想逐行读取文件,则需要做更多的工作,而不仅仅是给它路径。

首先,您需要打开connection文件:

conn <- file("histoire.inp", "rt")  # second argument indicates we're reading a text file.

然后,如果您想逐行读取文件,我发现以下代码块很有用(这里的原始想法):

while (length(oneLine <- readLines(conn, n = 1, warn = FALSE)) > 0) {
   # Do something to your line of text, stored in `oneLine`
}
close(conn)

n如果要分块读取文件,可以更改为更大的内容。

于 2013-10-26T01:34:36.197 回答