想知道我是否在for循環中創建一個對象 - 即不必初始化它。我已經嘗試了這個如何在matlab中做到這一點。請參閱下列R-代碼:是否需要在for循環中初始化一個對象R
> for (i in 1:nrow(snp.ids)) {
+ snp.fasta[i]<-entrez_fetch(db="protein", id=snp.ids[i,], rettype="xml",retmode="text")
+ snp.seq[i]<-xpathSApply(xmlParse(snp.fasta[i]), "//Seq-data_iupacaa",xmlValue)
+ }
Error in snp.fasta[i] <- entrez_fetch(db = "protein", id = snp.ids[i, :
object 'snp.fasta' not found
它顯然沒有找到snp.fasta - 但你可以從我試圖創建snp.fasta代碼中看到。任何人都可以闡明爲什麼它不會在內部創建它。 for循環,以及如果我無法在for循環中創建snp.fasta,那麼正確的方法是什麼。
感謝
有辦法做到這一點,但我想不出有什麼好處。既然你已經知道了'snp.fasta'的大小,你可以用適當的長度初始化它,例如'snp.fasta < - vector();在你的循環之前使用長度(snp.fasta)< - nrow(snp.ids)'來避免與遞增增量矢量有關的內存分配開銷。 – nrussell 2014-09-02 20:06:37
謝謝 - 這對我來說很有意義。在matlab中,我一直在for循環中創建它,但也許我不應該這樣做! – brucezepplin 2014-09-02 20:13:33