Description Usage Arguments Details See Also Examples
Create an object of class FlexTable
.
FlexTable can be manipulated so that almost any formatting can be specified.
An API is available to let you manipulate (format, add text, merge cells, etc.)
your FlexTable. A FlexTable is made of 3 parts: header, body and footer. To insert
headers and footers rows with eventually merged cells, see
addHeaderRow
and addFooterRow
.
Formating can be done on cells, paragraphs and text (borders, colors, fonts, etc.)
, see alterFlexTable
.
1 2 3 4 5 6 | FlexTable(data, numrow, numcol, header.columns = TRUE, add.rownames = FALSE,
body.cell.props = cellProperties(), body.par.props = parProperties(padding
= 0), body.text.props = textProperties(),
header.cell.props = cellProperties(),
header.par.props = parProperties(padding = 0),
header.text.props = textProperties(font.weight = "bold"))
|
data |
(a |
numrow |
number of row in the table body. Mandatory if data is missing. |
numcol |
number of col in the table body. Mandatory if data is missing. |
header.columns |
logical value - should the colnames be included in the table
as table headers. If FALSE, no headers will be printed unless you
use |
add.rownames |
logical value - should the row.names be included in the table. |
body.cell.props |
default cells formatting properties for table body |
body.par.props |
default paragraphs formatting properties for table body |
body.text.props |
default text formatting properties for table body |
header.cell.props |
default cells formatting properties for table headers |
header.par.props |
default paragraphs formatting properties for table headers |
header.text.props |
default text formatting properties for table headers |
The classical workflow would be to create a FlexTable, to add headers rows
(see addHeaderRow
) and eventually footers
rows (see addFooterRow
).
A FlexTable lets you add text in cells and modify cells, paragraphs and text
properties. Text can be added with operator [<-
.
Text, paragraphs and cells properties can be also modified with operator [<-
.
(see alterFlexTable
).
Below list of functions to use with FlexTable
objects:
Text formatting
Apply a textProperties
object to a subset of the
FlexTable. Use the operator [<-
. The textProperties
object will be used to format all text from selected cells. See
alterFlexTable
.
Text adding
Add text with operator [<-
. Text can be added just after
the last text in the cell or as a new paragraph. Format can also
be specified. Text can also be a pot
object if the
text format is complex.
Paragraph formatting
Apply a parProperties
object to a subset of the
FlexTable. Use the operator [<-
. The parProperties
object will be used to format all paragraphs from selected cells. See
alterFlexTable
.
Cell formatting
Apply a cellProperties
object to a subset of the
FlexTable. Use the operator [<-
. The cellProperties
object will be used to format selected cells. See alterFlexTable
.
Borders
Apply borders scheme to a FlexTable with function setFlexTableBorders
.
Set a border to a selection in a FlexTable with the operator [<-
and an object
of class borderProperties
. Don't forget to specify argument side
.
See alterFlexTable
.
Cell background colors
Applies background colors to cells. See setFlexTableBackgroundColors
.
Alternate row colors (zebra striping) with function setZebraStyle
.
Applies background colors to rows with function setRowsColors
.
Applies background colors to columns with function setColumnsColors
.
Cell merge
Span rows within columns with function spanFlexTableRows
.
Span columns within rows with function spanFlexTableColumns
.
Columns widths
Set columns widths with function setFlexTableWidths
.
addHeaderRow
, addFooterRow
, setFlexTableWidths
, alterFlexTable
, setFlexTableBorders
, spanFlexTableRows
, spanFlexTableColumns
, setRowsColors
, setColumnsColors
, setZebraStyle
, setFlexTableBackgroundColors
, pot
, addFlexTable
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | if( check_valid_java_version() ){
# Create a FlexTable with data.frame mtcars, display rownames
# use different formatting properties for header and body
MyFTable <- FlexTable( data = mtcars, add.rownames = TRUE,
header.cell.props = cellProperties( background.color = "#00557F" ),
header.text.props = textProperties( color = "white",
font.size = 11, font.weight = "bold" ),
body.text.props = textProperties( font.size = 10 )
)
# zebra stripes - alternate colored backgrounds on table rows
MyFTable <- setZebraStyle( MyFTable, odd = "#E1EEf4", even = "white" )
# applies a border grid on table
MyFTable <- setFlexTableBorders(MyFTable,
inner.vertical = borderProperties( color="#0070A8", style="solid" ),
inner.horizontal = borderNone(),
outer.vertical = borderProperties( color = "#006699",
style = "solid", width = 2 ),
outer.horizontal = borderProperties( color = "#006699",
style = "solid", width = 2 )
)
# set default font size to 10
options("ReporteRs-fontsize" = 10)
# a summary of mtcars
dataset <- aggregate(mtcars[, c("disp", "mpg", "wt")],
by = mtcars[, c("cyl", "gear", "carb")], FUN = mean)
dataset <- dataset[order(dataset$cyl, dataset$gear, dataset$carb),]
# set cell padding defaut to 2
baseCellProp <- cellProperties(padding = 2)
# Create a FlexTable with data.frame dataset
MyFTable <- FlexTable( data = dataset,
body.cell.props = baseCellProp, header.cell.props = baseCellProp,
header.par.props = parProperties(text.align = "right") )
# set columns widths (inch)
MyFTable <- setFlexTableWidths(MyFTable,
widths = c(0.5, 0.5, 0.5, 0.7, 0.7, 0.7))
# span successive identical cells within column 1, 2 and 3
MyFTable <- spanFlexTableRows(MyFTable, j = 1,
runs = as.character(dataset$cyl))
MyFTable <- spanFlexTableRows(MyFTable, j = 2,
runs = as.character(dataset$gear))
MyFTable <- spanFlexTableRows(MyFTable, j = 3,
runs = as.character(dataset$carb))
# overwrites some text formatting properties
MyFTable[dataset$wt < 3, 6] <- textProperties(color = "#003366")
MyFTable[dataset$mpg < 20, 5] <- textProperties(color = "#993300")
# overwrites some paragraph formatting properties
MyFTable[, 1:3] <- parProperties(text.align = "center")
MyFTable[, 4:6] <- parProperties(text.align = "right")
Footnote1 <- Footnote()
par1 <- pot("About this reference", textBold())
par2 <- pot(
"Omni ab coalitos pro malivolus obsecrans graviter cum perquisitor \
perquisitor pericula saepeque inmunibus coalitos ut.",
textItalic(font.size = 8)
)
Footnote1 <- addParagraph(Footnote1,
set_of_paragraphs(par1, par2),
parProperties(text.align = "justify"))
Footnote1 <- addParagraph(
Footnote1,
set_of_paragraphs("list item 1", "list item 2"),
parProperties(text.align = "left", list.style = "ordered")
)
an_rscript <- RScript(text = "x = rnorm(10)")
Footnote1 <- addParagraph(Footnote1, an_rscript)
MyFTable[1, 1, newpar = TRUE] <- pot("a note",
footnote = Footnote1,
format = textBold(color = "gray"))
pot_link <- pot(" (link example)", textProperties(color = "cyan"),
hyperlink = "http://www.wikipedia.org/")
MyFTable[1, 1, to = "header"] <- pot_link
# applies a border grid on table
MyFTable <- setFlexTableBorders( MyFTable, footer = TRUE,
inner.vertical = borderProperties(color = "#666666"),
inner.horizontal = borderProperties(color = "#666666"),
outer.vertical = borderProperties(width = 2, color = "#666666"),
outer.horizontal = borderProperties(width = 2, color = "#666666") )
ft <- vanilla.table(head(iris))
ft <- setFlexTableBackgroundColors( ft,
i = 1:3, j = c("Petal.Length", "Species"), colors = "yellow" )
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.