[R] How to signal the end of the table?

ONKELINX, Thierry Thierry.ONKELINX at inbo.be
Thu Aug 30 12:50:39 CEST 2007


Have you tried read.table() and the similar functions? I think they
would provide a much more simple solution for your problem.

HTH,

Thierry

------------------------------------------------------------------------
----
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
methodology and quality assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium
tel. + 32 54/436 185
Thierry.Onkelinx op inbo.be
www.inbo.be 

Do not put your faith in what statistics say until you have carefully
considered what they do not say.  ~William W. Watt
A statistical analysis, properly conducted, is a delicate dissection of
uncertainties, a surgery of suppositions. ~M.J.Moroney

 

> -----Oorspronkelijk bericht-----
> Van: r-help-bounces op stat.math.ethz.ch 
> [mailto:r-help-bounces op stat.math.ethz.ch] Namens Yuchen Luo
> Verzonden: woensdag 29 augustus 2007 19:41
> Aan: r-help op stat.math.ethz.ch
> Onderwerp: [R] How to signal the end of the table?
> 
> I am using a "for" loop to read a table row by row and I have 
> to specify how many records are there in the table. I need to 
> read row by row because the table is huge and the memory not 
> large enough for the whole table.:
> 
> 
> 
> number.of.records=100
> 
> 
> 
> fp=file("abc.csv","r")
> 
> pos=seek(fp, rw="read")
> 
> for (i in 1:number.of.record){
> 
> current.row=scan(file=fp, sep=',', what=list(count=1, 
> cusip6="", idate=1, spread=1.1, vol252=1.1, vol1000=1.1, 
> st_debt=1.1, lt_debt=1.1 , total_liab=
> 1.1, cr=1.1,   shrout=1.1, prc=1.1, mkt_cap=1.1, rtng=1.1, 
> sec=1.1, cr3m=1.1,
> cr5y=1.1, ust3m=1.1,  ust5y=1.1), flush=TRUE, nlines=1,quiet=T)
> 
> ...
> 
> }
> 
> 
> 
> I need to know the number of records in the table and put it 
> in the variable named "number.of.records". When I have a new 
> table that I do not know how many records it has, I use excel 
> to open the file to figure it out and put it in variable " 
> number.of.records". I often have many tables to try and every 
> one of them has thousands of records----it takes a lot of 
> time and trouble to adjust the code every time I read a 
> different table.
> 
> 
> 
> I am wondering if I can change the "for" loop to a "while" loop:
> 
> 
> 
> while (the end of the table has not been reached)
> 
> {
> 
> current.row=scan(file=fp, sep=',', what=list(count=1, 
> cusip6="", idate=1, spread=1.1, vol252=1.1, vol1000=1.1, 
> st_debt=1.1, lt_debt=1.1 , total_liab=
> 1.1, cr=1.1,   shrout=1.1, prc=1.1, mkt_cap=1.1, rtng=1.1, 
> sec=1.1, cr3m=1.1,
> cr5y=1.1, ust3m=1.1,  ust5y=1.1), flush=TRUE, nlines=1,quiet=T)
> 
> ...
> 
> }
> 
> 
> The problem is how to articulate "while (the end of the table 
> has not been reached)", or equivalently, how to signal the 
> end of the table?
> 
> Best Wishes
> Yuchen Luo
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help op stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list