Tôi chỉ muốn cập nhật điều này với những gì tôi đã giải quyết. Tôi đang sử dụng hwriter
gói ngay bây giờ để in ra các bảng và sử dụng các tính năng row.*
và col.*
để đặt các lớp CSS vào các phần tử khác nhau. Sau đó, tôi viết CSS tùy chỉnh để hiển thị như tôi muốn. Vì vậy, đây là một ví dụ trong trường hợp bất kỳ ai khác đang xử lý một cái gì đó tương tự.
Trước tiên, hãy tạo một tệp sẽ thực hiện knitting
và thay đổi Markdown thành HTML:
FILE: file_knit.r
#!/usr/bin/env Rscript
library(knitr)
library(markdown)
knit("file.Rmd")
markdownToHTML("file.md","file.html",stylesheet="~/custom.css")
Tiếp theo, tạo tệp Markdown thực tế:
FILE: file.Rmd
Report of Fruit vs. Animal Choices
==================================
This is a report of fruit vs. animal choices.
```{r echo=FALSE,results='asis'}
library(hwriter)
set.seed(9850104)
my.df <- data.frame(Var1=sample(x=c("Apple","Orange","Banana"),size=40,replace=TRUE),
Var2=sample(x=c("Dog","Cat","Bunny"),size=40,replace=TRUE))
tbl1 <- table(my.df$Var1,my.df$Var2)
tbl1 <- cbind(tbl1,rowSums(tbl1))
tbl1 <- rbind(tbl1,colSums(tbl1))
colnames(tbl1)[4] <- "TOTAL"
rownames(tbl1)[4] <- "TOTAL"
# Because I used results='asis' for this chunk, I can just use cat() and hwrite() to
# write out the table in HTML. Using hwrite()'s row.* function, I can assign classes
# to the various table elements.
cat(hwrite(tbl1,
border=NA,
table.class="t1",
row.class=list(c("header col_first","header col","header col","header col", "header col_last"),
c("col_first","col","col","col","col_last"),
c("col_first","col","col","col","col_last"),
c("col_first","col","col","col","col_last"),
c("footer col_first","footer col","footer col","footer col","footer col_last"))))
```
Cuối cùng, chỉ cần tạo một tệp CSS tùy chỉnh.
FILE: custom.css
body {
font-family: sans-serif;
background-color: white;
font-size: 12px;
margin: 20px;
}
h1 {font-size:1.5em;}
table {
border: solid;
border-color: black;
border-width: 2px;
border-collapse: collapse;
margin-bottom: 20px;
text-align: center;
padding: 0px;
}
.t1 .header {
color: white;
background-color: black;
border-bottom: solid;
border-color: black;
border-width: 2px;
font-weight: bold;
}
.t1 .footer {
border-top: solid;
border-color: black;
border-width: 2px;
}
.t1 .col_first {
border-right: solid;
border-color: black;
border-width: 2px;
text-align: left;
font-weight: bold;
width: 75px;
}
.t1 .col {
width: 50px;
}
.t1 .col_last {
width: 50px;
border-left: solid;
border-color: black;
border-width: 2px;
}
Việc thực thi ./file_knit.r
cung cấp cho tôi tệp.html, trông giống như sau:
Vì vậy, hy vọng điều này có thể hữu ích cho những người muốn định dạng nhiều hơn một chút trong đầu ra Markdown!
print(xtable(data), type = "html")
.