Piotr W.

Piotr W. adiunkt na WNE UW,
kierownik studiów
podyplomowych
"Metod...

Temat: złożona tabela częstości do LaTeXa/HTML - jak?

Jak zapisać do LaTeXa tabelę częstości zawierającą coś więcej niż liczebności?

Chodzi mi np. o tabelę generowaną przez funkcję CrossTable() z pakietu gmodels albo jej następczynię crosstab() z pakietu descr.

Czy da się zapisać kompletną wynikową tabelę np. jako obiekt xtable, który można zapisać w formacie LaTeXa albo HTMLa?

Przykład:
x<-rep(seq(1:3),50)
y<-rep(c(2,3,1),50)

Polecenie:
# library(descr); library(xtable)
xtable(crosstab(x,y, prop.c=T, plot=FALSE))

przekonwertuje na LaTeXa tylko wartości liczebności, a nie dodatkowe zestawienie % kolumnowych (jedną z metod w xtable jest freqtable).

Jak przekonwertować pełną tabelę?

Bardzo dziękuję za wszelkie podpowiedzi.
Wojciech Sobala

Wojciech Sobala Redaktor
statystyczny,
biostatystyk,
Instytut Medycyny
Pr...

Temat: złożona tabela częstości do LaTeXa/HTML - jak?

W tabeli wynikowej crosstab nie ma zapisanych % a jedynie informacja o tym jakie mają być obliczone (można to sprawdzić komendą str(crosstab(x,y, prop.c=T, plot=FALSE))).
Zatem pozostaje jedynie możliwość obliczenia % na poziomie xtable lub użycie innej funkcji.
Ja osobiście polecam summary.formula z pakietu Hmisc. Jest to chyba najbardziej uniwersalna funkacja dla tworzenia tabel i ma
możliwość (z poziomu pakietu) eksportu do html oraz Latex.Wojciech Sobala edytował(a) ten post dnia 18.03.10 o godzinie 08:51
Piotr W.

Piotr W. adiunkt na WNE UW,
kierownik studiów
podyplomowych
"Metod...

Temat: złożona tabela częstości do LaTeXa/HTML - jak?

Dziękuję za odpowiedź.

Wiem, że crosstab zapisuje osobno liczebności, a osobno wygenerowane procenty wierszowe, czy kolumnowe, ale umożliwia ich łączne wyświetlenie.
I właśnie potrzebuję zapisać do LaTeXa uzupełnioną o procenty tabelę częstości w postaci jaką wyświetla np. polecenie:

crosstab(x,y, prop.c=T, plot=FALSE)

Nie wiem jak to zrobić w prosty sposób - dopiero zaczynam zabawę ze Sweave. Spróbuję z summary.formula.
Piotr W.

Piotr W. adiunkt na WNE UW,
kierownik studiów
podyplomowych
"Metod...

Temat: złożona tabela częstości do LaTeXa/HTML - jak?

Zapomniałem dopisać, że analizuję dane ważone, dlatego wykorzystuję funkcję crosstab(), w której jest możliwość ważenia danych.

Nie widzę takiej opcji w summary.formula() :(
Wojciech Sobala

Wojciech Sobala Redaktor
statystyczny,
biostatystyk,
Instytut Medycyny
Pr...

Temat: złożona tabela częstości do LaTeXa/HTML - jak?

Jeżli wynik crosstab jest w zmiennej tb, to tb$t tabelka z liczebnościami, tb$prop.col tabelka z częstościami.
Można te dwie tabele połączyć w jedną i wtedy zastosować xtable.

Np.
tabbind = function(tb){
tmp = matrix(NA,ncol=2*dim(tb$t)[2],nrow=dim(tb$t)[1])
tmp[,seq(1,2*dim(tb$t)[2],2)] = tb$t
tmp[,seq(2,2*dim(tb$t)[2],2)] = tb$prop.col*100
tmp
}
Piotr W.

Piotr W. adiunkt na WNE UW,
kierownik studiów
podyplomowych
"Metod...

Temat: złożona tabela częstości do LaTeXa/HTML - jak?

W sumie racja :)
Można taką tabelę w dowolny sposób sobie skonfigurować.
Poskładam to raczej w kolejnych wierszach, ale dziękuję bardzo za podpowiedź!



Wyślij zaproszenie do