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