[R] Faster Printing Alternatives to 'cat'

Henrik Bengtsson hb at stat.berkeley.edu
Thu Jan 8 13:25:09 CET 2009


On Thu, Jan 8, 2009 at 3:12 AM, Gundala Viswanath <gundalav at gmail.com> wrote:
> Dear all,
>
> I found that printing with 'cat' is very slow.
>
> For example in my machine this snippet
>
> __BEGIN__
>
> # I need to resolve to use this type of loop.
> # because using write(), I need to create a matrix  which
> # consumes so much memory. Note that "foo, bar, qux" object
> # is already very large (>2Gb)
>
> for ( s in 1:length(x) ) {
>    cat(as.character(foo[s]),"\t",bar[s],"\t", qux[s],"\n")
> }
> __END__
>
> for "x" of size ~1.5million, takes more than 10 hours to print.
> On my Linux 1994.MHz AMD processor.

But that's nothing compared to how long it will take you to read it.

>
> Is there any faster alternatives to "cat" ?

What are you trying to achieve?  Writing the data to file?  Something like this?

strs <- paste(as.character(foo), bar, qux, sep="\t");
writeLines(strs, con="foo.txt");

See also help(write.table) and friends.

/Henrik

>
>
> - Gundala Viswanath
> Jakarta - Indonesia
>
> ______________________________________________
> R-help at r-project.org 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