Skip to content
Back to formatted view

Raw Message

Message-ID: <49953029.3060102@bitwrit.com.au>
Date: 2009-02-13T08:32:41Z
From: Jim Lemon
Subject: Latex or html output for freq() in prettyR
In-Reply-To: <14a6d2ab0902120238m3716a11q5d2152e22db4e60d@mail.gmail.com>

christiaan pauw wrote:
> Hi Everybody
> I need to create a lot of frequency tables with frequencies and percentages
> (and cumilative freq and % as well) for a report. freq() in prettyR give
> more or less what I need.
> I am trying to export the result of freq() to html but the html doesn't look
> look the console output.
>
> See the following example
>
> library(prettyR)
>
> library(Hmisc)
>
> x <- matrix(sample(1:3, 12, replace=TRUE), nrow=3, dimnames=list(c('A','B',
> 'C'),letters[1:4])) # create a 3x4 matrix with random numbers beteen 1 and 3
>
> x # see what it looks like
>
> fx=freq(x) # create frequency table with frequencies and % per column
>
> fx # looks pretty good, now I want to export it to latex or html
>
> html(fx) # I expected this to look like console output but it doesn't. Can
> anything be done?
>
> fm=as.matrix(fx) #It can't be coerced into a matrix or table (as far as i
> can see)
>
> class(fm) # it's class remains freq
>
>
> Does anyone now what to do?
>   
Hi Christiaan,
One way to get the same output in HTML as in the console is to use the 
htmlize function in the prettyR package. htmlize runs an R script (so 
that you can edit the script until it does just what you want) and 
formats the output of the script as an HTML page. So if you had a script 
that contained:

library(prettyR)
x <- matrix(sample(1:3, 12, replace=TRUE), nrow=3,
 dimnames=list(c('A','B','C'),letters[1:4])) beteen 1 and 3
x # see what it looks like
fx<-freq(x) # create frequency table with frequencies and % per column
fx # looks pretty good, now I want to export it to latex or html

and you named it "testfreq.R". You could get the output you want with:

htmlize("testfreq.R",title="My HTML output")

the output will appear in a file named, "testfreq.html" unless you name 
it something else with the HTMLbase argument to htmlize. The "html" 
function from the Hmisc package is probably expecting a data frame and 
not the output of the freq function. However, it does the best it can 
and tries to make a data.frame out of a pig's ear, constructing and 
displaying the result in an HTML table. Hats off to Professor Harrell 
for writing the function so that it does anything more than barf in the 
situation.

Jim