[R] How to read a row dataset one by one

Henrik Bengtsson hb at maths.lth.se
Fri Jun 10 11:32:06 CEST 2005


Open a connection a read line by line from that one, e.g.

myReadPrint <- function(pathname, ...) {
   con <- file(pathname, open="r")
   on.exit(close(con)) # Guarantees to close connection!

   count <- 0;
   while(TRUE) {
     line <- scan(con, sep="\t", nlines=1, fill=TRUE,
                                        quiet=TRUE, what="raw");
     # Alternatively, just...
     # line <- readLines(con, n=1)
     if (length(line) == 0)
       break;
     count <- count + 1;
     cat("read row no ", count, ",\n", sep="");
     print(line);
   }
}

See ?file for more details.

/Henrik

Clark Allan wrote:
> use a loop associated with the scan function.
> 
> for (i in 1:9)
> {
> 
> print(scan(file="c:/a.txt",sep="\t",skip=i,nlines=1,fill=T,quiet=T,what="raw"))
> }
> 
> 
> this works but there has to be a better solution
> 
> 
> 
> Jan Sabee wrote:
> 
>>Dear all,
>>How to read a row dataset one by one and then print it.
>>
>>x1 x2 x3 x4 x5   y
>>a  b  a  c  c    M1
>>c  b  b  c  c    M4
>>c  c  a  c  c    M2
>>c  a  c  a  a    M2
>>c  c  a  a  a    M1
>>c  a  b  c  a    M3
>>c  c  a  b  c    M3
>>c  a  c  a  b    M2
>>c  c  a  b  a    M1
>>
>>I need a result like
>>read row no 1,
>>[1] a  b  a  c  c    M1
>>read row no 2,
>>[1] c  b  b  c  c    M4
>>.
>>.
>>.
>>the last row,
>>[1] c  c  a  b  a    M1
>>
>>Kind regards,
>>Jan Sabee
>>
>>______________________________________________
>>R-help at 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
>>
>>
>>------------------------------------------------------------------------
>>
>>______________________________________________
>>R-help at 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




More information about the R-help mailing list