On 02-Aug-07 21:14:20, Tom Cohen wrote: > Dear List, > > I have 30 data files with different numbers of lines (31 and 33) that > I want to skip before reading the files. If I use the skip option I can > only choose either to skip 31 or 33 lines. The data files with 31 lines > have no blank rows between the lines and the header row. How can I read > the files without manually checking which files have 31 respectively 33 > lines ? The only text line I want to keep is the header. > > Thamks for your help, > Tom > > > for (i in 1:num.files) { > a<-read.table(file=data[i], > ,header=T,skip=31,sep='\t',na.strings="NA") > > }
If you're using a Unix/Linux system, you have the little command "wc" which can count characters or words or lines in a file. For example, I'm working at the moment on a file "mkSim.R" which has 53 lines. So, in R: > system("wc -l mkSim.R") 53 mkSim.R Hence the following returns the line-count as an integer: > as.integer(substring(system("wc -l mkSim.R",intern=TRUE),1,7)) [1] 53 (which will also work for files with hundreds, thousands, ... of lines, since the units digit is at position 7). Hoping this helps, Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <[EMAIL PROTECTED]> Fax-to-email: +44 (0)870 094 0861 Date: 02-Aug-07 Time: 23:51:59 ------------------------------ XFMail ------------------------------ ______________________________________________ R-help@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.