Я хотел бы выяснить, как создавать отформатированные HTML-таблицы таким образом, чтобы не требовалось использование стилей, размещенных в заголовке HTML. я в целом уже спрашивал об этом вопросе, но получил один ответ, в котором упоминалось об использовании заголовка, и другой ответ, который включает использование pandoc (Обновление: см. внизу этого поста информацию о новом ответе, опубликованном после того, как был задан этот вопрос. Я хотел бы иметь функцию R, которая записывает все форматирование HTML, необходимое для форматированной таблицы HTML, в одном месте.
Недавно я играл с gvisTable
, и он способен записывать всю необходимую информацию в одном месте:
Следующий код
```{r results='asis'}
simpleData <- data.frame(matrix(1:9, nrow=3))
tab2 <- gvisTable(simpleData,
options=list(width = 600, height = 300))
print(tab2, "chart")
```
выведет следующее в документ R Markdown:
<!-- jsHeader -->
<script type="text/javascript" src="http://www.google.com/jsapi">
</script>
<script type="text/javascript">
// jsData
function gvisDataTableID273f3d05cccd ()
{
var data = new google.visualization.DataTable();
var datajson =
[
[
1,
4,
7
],
[
2,
5,
8
],
[
3,
6,
9
]
];
data.addColumn('number','X1');
data.addColumn('number','X2');
data.addColumn('number','X3');
data.addRows(datajson);
return(data);
}
// jsDrawChart
function drawChartTableID273f3d05cccd() {
var data = gvisDataTableID273f3d05cccd();
var options = {};
options["allowHtml"] = true;
options["width"] = 600;
options["height"] = 300;
var chart = new google.visualization.Table(
document.getElementById('TableID273f3d05cccd')
);
chart.draw(data,options);
}
// jsDisplayChart
function displayChartTableID273f3d05cccd()
{
google.load("visualization", "1", { packages:["table"] });
google.setOnLoadCallback(drawChartTableID273f3d05cccd);
}
// jsChart
displayChartTableID273f3d05cccd()
<!-- jsFooter -->
//-->
</script>
<!-- divChart -->
<div id="TableID273f3d05cccd"
style="width: 600px; height: 300px;">
</div>
И когда это помещается в контекст, создается gvisTable. См. вторую таблицу в этом выводе.
Таким образом, простая функция R вывела весь необходимый HTML для создания довольно сложной таблицы. В конечном итоге я хотел бы иметь ту же степень контроля форматирования таблиц, что и в LateX, только для R Markdown. И было бы хорошо, если бы такие посты чаще появлялись в блогах, через синдикаты, в RSS-читалках и так далее, чтобы команды форматирования были в теле.
Вопросы
- Можно ли использовать подход, аналогичный gvis (например, сценарии в теле HTML), для форматирования таблиц HTML (например, строк, форматирования ячеек, высоты и ширины ячеек, шрифтов и т. д.)?
- Существуют ли какие-либо существующие функции R, поддерживающие создание таких таблиц?
- Имеют ли смысл предположения этого вопроса, или есть какой-то другой способ достичь моих более широких целей точного форматирования таблицы HTML с помощью R Markdown?
Обновлять
Джо добавил ответ на мой предыдущий вопрос, где он упоминает три варианта (стиль в теле; javascript, который встраивает стиль в заголовок; и блоки стилей с заданной областью). Поэтому я думаю, что главный вопрос, который остается, заключается в том, существуют ли какие-либо интерфейсы для облегчения использования таких подходов с блоками кода R Markdown.