2012-12-07 9 views
5

próbuję użyć print.xtableadd.to.row dostać stolik sformatowany tak:dodawanie wierszy lub pogrubienie pojedynczego wiersza.names z print.xtables - dodać coś pomiędzy wierszami?

sportowy

share of ballers 22.3 
share of skiers  4.6 

uzależnień

share of smokers 20.3 
share of drinkers 6.6 

Moja R tabela nie zawiera dodatkowych row.names nawet jeśli te wiersze nie zawierają żadnych wartości. Użyłem opcji add.to.row, aby dodać kolory do różnych wierszy, takich jak sugerowany here, który działał dobrze. Ale nie działa to dodawanie pogrubionego tekstu za pomocą xtable lub dodawanie dodatkowego hline między wierszami. Zawsze pojawia się komunikat o błędzie, taki jak:

Bad type area settings! Wykryta szerokość linii wynosi około 52% (typearea) większej niż heurystycznie określona szerokość linii.

Może to oznaczać, że stół stanie się atrakcyjny dla środowiska ze względu na moje zmiany, ale nie mam pojęcia, co z tym zrobić. Uwaga: Czytałem posty takie jak ten one, które modyfikują wyjście xtable, ale nawet jeśli to może być możliwe dla mnie, szukam łatwiejszego rozwiązania. Ponieważ gdybym sięgnął po to rozwiązanie, musiałbym capture.output i użyć zamiennika regexp, aby dodać coś pomiędzy.

Czy istnieje sposób obejścia tego? Czy istnieje prostsze rozwiązanie?

Odpowiedz

11

Dla części hline, patrz ?print.xtable.

hline.after: Kiedy „type="latex"”, wektor liczb między -1 i „"nrow(x)"” włącznie, wskazując na rzędy po którym pozioma linia powinna pojawić

Aby ośmielić was wszystkich wierszy nazwy:

bold.allrows <- function(x) { 
    h <- paste('\\textbf{',x,'}', sep ='') 
    h 
} 
print(xtable(yourTable), 
     sanitize.rownames.function = bold.allrows) 

Aby pogrubić nazwy niektórych wierszy, można dodać "specjalny znacznik" do tych wierszy, np. BOLD:

bold.somerows <- 
     function(x) gsub('BOLD(.*)',paste('\\\\textbf{\\1','}'),x) 

print(xtable(yourTable), 
     sanitize.rownames.function = bold.somerows) 

np:

require(xtable) 
hh <- head(mtcars)[ , c(1:5)] 
## I want to bold 1 and 3 rows 
rownames(hh)[c(1, 3)] <- paste('BOLD', rownames(hh)[c(1, 3)]) 
print(xtable(hh), sanitize.rownames.function = bold.somerows) 
+0

+1 dla wskaźnika. zgubiłem kawałek po tym wszystkim dokumencie. Jednak hline wydaje się być ograniczony tylko do hline. Coś tak prostego, że trochę bardziej przypomina spacery lub wstawia znaki, byłoby idealne. –

+0

gdzie dokładnie chcesz wstawić znak? – agstudy

+0

Nazwy wierszy na przykład. Jak w moim przykładzie. Dodanie nazw rzędów pogrubionych nagłówków sekcji byłoby fajne. Nie musiałbym wtedy dodawać ich do mojego stołu R. –

Powiązane problemy