[R] How to print the frequency table (produced by the command "table" to Excel

Bert Gunter bgunter.4567 at gmail.com
Mon May 2 15:30:24 CEST 2016


Don't know if this would help, but you could always set an attribute
of alphatab to be the dimnames. See ?attrib . Of course you would then
have to write a custom print() function, possibly along the lines you
indicated.

You could also do this via S3 (or whatever) classes, of course. But
again, none of this may be the sort of thing the OP could handle.
Maybe my point is by improving her(?) R programming skills, she would
gain the ability to do all sorts of such "customizations".

Cheers,
Bert


Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Mon, May 2, 2016 at 2:58 AM, Jim Lemon <drjimlemon at gmail.com> wrote:
> Hi jpm miao,
> After a fair stretch of fooling around with it, I can't see any way to
> add the variable names ("varnames") to the output of delim.table
> without breaking it for things other than table objects. You can
> probably do this as a one-off hack by setting the names of the
> dimnames of the "counts" element in alphatab like this:
>
> names(dimnames(alphatab$counts))<-alphatab$varnames
>
> You can then shoehorn these into the output by adding a line to
> display the second varname above the table and add the first varname
> to the row of value labels. That's the best I can do at the moment.
>
> Jim
>
>
> On Sun, May 1, 2016 at 11:19 AM, jpm miao <miaojpm at gmail.com> wrote:
>> Thanks.
>> Could we print the row/column names, "alpha1" and "alpha2" to the csv file?
>>
>> 2016-04-30 17:06 GMT-07:00 Jim Lemon <drjimlemon at gmail.com>:
>>>
>>> Hi jpm miao,
>>> I think you can get what you want like this:
>>>
>>> alpha1<-sample(LETTERS[1:3],50,TRUE)
>>> alpha2<-sample(LETTERS[1:2],50,TRUE)
>>> alphas<-data.frame(alpha1,alpha2)
>>> library(prettyR)
>>> alphatab<-xtab(alpha1~alpha2,alphas)
>>> sink("temp_table3.csv",append=TRUE)
>>> delim.xtab(alphatab,pct=NA,delim=",")
>>> sink()
>>>
>>> Jim
>>>
>>> On Sun, May 1, 2016 at 4:47 AM, jpm miao <miaojpm at gmail.com> wrote:
>>> > Jim,
>>> >
>>> >    Thanks for creating such a fantastic package "prettyR".
>>> >    I want to print the pretty frequency table (with row total and column
>>> > total) to an excel (or csv ) file. Is it possible?
>>> >>alphatab
>>> >
>>> > A B Total
>>> > A 8 10 18
>>> > B 7 5 12
>>> > C 9 11 20
>>> > Total 24 26 50
>>> >
>>> >    Two issues I encountered (See the attached csv file).
>>> > 1. When I tried to print the above table to csv file, all elements on
>>> > the
>>> > same row are printed in one cell.
>>> > 2. If I write "delim.table(alpha tab)", the table is distorted (see
>>> > attached). Of course, I can adjust it manually but sometimes the number
>>> > of
>>> > files is big.
>>> >
>>> >     Thanks!
>>> >
>>> > Miao
>>> >
>>> >> alpha1<-sample(LETTERS[1:3],50,TRUE)
>>> >> alpha2<-sample(LETTERS[1:2],50,TRUE)
>>> >>
>>> >> alphas<-data.frame(alpha1,alpha2)
>>> >> alphatab<-xtab(alpha1~alpha2,alphas)
>>> > Crosstabulation of alpha1 by alpha2
>>> > alpha2
>>> > alpha1      A      B
>>> > A      8     10     18
>>> >    44.44  55.56      -
>>> >    33.33  38.46  36.00
>>> >
>>> > B      7      5     12
>>> >    58.33  41.67      -
>>> >    29.17  19.23  24.00
>>> >
>>> > C      9     11     20
>>> >       45     55      -
>>> >    37.50  42.31  40.00
>>> >
>>> >       24     26     50
>>> >       48     52    100
>>> >> delim.xtab(alphatab,pct=NA,interdigitate=TRUE)
>>> > alphatab
>>> >
>>> > A B Total
>>> > A 8 10 18
>>> > B 7 5 12
>>> > C 9 11 20
>>> > Total 24 26 50
>>> >
>>> >> sink("temp_table3.csv")
>>> >> delim.xtab(alphatab,pct=NA,interdigitate=TRUE)
>>> >> sink()
>>> >> sink("temp_table3.csv", append=TRUE)
>>> >> delim.table(alphatab)
>>> >> sink()
>>> >> sink("temp_table3.csv", append=TRUE)
>>> >> delim.table(alphatab)
>>> >> sink()
>>> >> ?delim.xtab
>>> >
>>> >
>>> > 2016-04-26 16:14 GMT-07:00 Jim Lemon <drjimlemon at gmail.com>:
>>> >>
>>> >> Hi jpm miao,
>>> >> You can get CSV files that can be imported into Excel like this:
>>> >>
>>> >> library(prettyR)
>>> >> sink("excel_table1.csv")
>>> >> delim.table(table(df[,c("y","z")]))
>>> >> sink()
>>> >> sink("excel_table2.csv")
>>> >> delim.table(as.data.frame(table(df[,c("y","z")])),label="")
>>> >> sink()
>>> >> sink("excel_table3.csv")
>>> >> delim.table(as.matrix(table(df[,c("y","z")])),label="")
>>> >> sink()
>>> >>
>>> >> Jim
>>> >>
>>> >> On Wed, Apr 27, 2016 at 8:35 AM, jpm miao <miaojpm at gmail.com> wrote:
>>> >> > Hi,
>>> >> >
>>> >> >    How could we print the frequency table (produced by "table") to an
>>> >> > Excel
>>> >> > file?
>>> >> >    Is there an easy way to do so? Thanks,
>>> >> >
>>> >> > Miao
>>> >> >
>>> >> >> df <- data.frame(x = 1:3, y = 3:1, z = letters[1:3])
>>> >> >
>>> >> >> table(df[,c("y","z")])
>>> >> >    z
>>> >> > y   a b c
>>> >> >   1 0 0 1
>>> >> >   2 0 1 0
>>> >> >   3 1 0 0
>>> >> >> test<-table(df[,c("y","z")])
>>> >> >> as.data.frame(test)
>>> >> >   y z Freq
>>> >> > 1 1 a    0
>>> >> > 2 2 a    0
>>> >> > 3 3 a    1
>>> >> > 4 1 b    0
>>> >> > 5 2 b    1
>>> >> > 6 3 b    0
>>> >> > 7 1 c    1
>>> >> > 8 2 c    0
>>> >> > 9 3 c    0
>>> >> >> as.matrix(test)
>>> >> >    z
>>> >> > y   a b c
>>> >> >   1 0 0 1
>>> >> >   2 0 1 0
>>> >> >   3 1 0 0
>>> >> >> testm<-as.matrix(test)
>>> >> >> testm
>>> >> >    z
>>> >> > y   a b c
>>> >> >   1 0 0 1
>>> >> >   2 0 1 0
>>> >> >   3 1 0 0
>>> >> >> typeof(testm)
>>> >> > [1] "integer"
>>> >> >
>>> >> >         [[alternative HTML version deleted]]
>>> >> >
>>> >> > ______________________________________________
>>> >> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> >> > 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.
>>> >
>>> >
>>
>>
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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