Are you sure it is the sprintf vs. write.table?  I constructed a dataframe
of your size and it took less than 1 second to do the sprintf:

> system.time(df.fmt <- sprintf("%2s%2s%4.2f", df$V1, df$V2, df$V3))
[1] 0.70 0.00 0.73   NA   NA
> str(df)
`data.frame':   67944 obs. of  34 variables:
 $ V1 : chr  "0.2655" "0.3721" "0.5729" "0.9082" ...
 $ V2 : chr  "0.2655" "0.3721" "0.5729" "0.9082" ...
 $ V3 : num  0.0642 0.5316 0.5466 0.2798 0.4931 ...
 $ V4 : num  0.8430 0.8279 0.1552 0.5153 0.0725 ...
 $ V5 : num  0.922 0.780 0.811 0.847 0.223 ...


If you want to write this string out to a file, then use 'cat'.  If you add
'\n' to the sprintf, you will get something like this:

> cat(df.fmt[1:5])
0.26550.26550.06
 0.37210.37210.53
 0.57290.57290.55
 0.90820.90820.28
 0.20170.20170.49
>


On 7/11/06, YIHSU CHEN <[EMAIL PROTECTED]> wrote:
>
> Dear R users:
>
> I'm trying to generate a output file with fixed format using function
> "sprintf" in R. However, the execution time in R is very long even the toy
> data (smaller size df) seems to work fine. The syntax that I used is as
> follows:
>
> df.fmt <- sprintf("%2s%2s%2.4f", df$v1, df$v2, df$v3)
> write.table(df.fmt, output.name,...)
>
> The actual dataset is a df with the dimention of 67944 by 34. I'm
> wondering whether there is an elegant way of doing it. I would like output
> in a txt file.
>
> Many thanks.
>
>
> Yihsu Chen
> The Johns Hopkins University
>
> ______________________________________________
> 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
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390 (Cell)
+1 513 247 0281 (Home)

What is the problem you are trying to solve?

        [[alternative HTML version deleted]]

______________________________________________
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

Reply via email to