是否可以使用hwrite(或任何其他HTML创建包)跨越多个列的标题?我可以用嵌套在一个更大的表中的数据帧来伪装它,但它不是真正的跨度(它看起来很难看)。
我在examples中没有看到这个版本,但也许在其他地方存在。
谢谢, 汤姆
答案 0 :(得分:6)
编辑:我应该添加print.xtable
方法做html,(我不应该假设已知)。使用type = "html"
选项。
没有使用html的经验,但我使用LaTeX执行以下操作。
在xtable
包中,print.xtable
方法有一个选项add.to.row
,允许您这样做。对于add.to.row
,您可以添加列表列表,其中第一个列表是行号列表,第二个列表是要在该点插入的命令列表。来自?print.xtable
:
add.to.row
- 两个清单 组件。第一个组成部分(其中 应该被称为'pos')是一个列表 包含行的位置 应该添加额外的命令 结束,第二个组成部分(其中 应该被称为'命令')是一个 字符向量相同的长度 第一个包含的组件 应该添加的命令 指定行的结尾。默认 value为NULL,即不添加 命令。
对于LaTeX,我使用以下自制命令在系数和t-stat列上方添加“(1)”。
my.add.to.row <- function(x) {
first <- "\\hline \\multicolumn{1}{c}{} & "
middle <- paste(paste("\\multicolumn{2}{c}{(", seq(x), ")}", sep = ""), collapse = " & ")
last <- paste("\\\\ \\cline {", 2, "-", 1 + 2 * x, "}", collapse = "")
string <- paste(first, middle, last, collapse = "")
list(pos = list(-1), command = string)
}
HTH。
答案 1 :(得分:1)
我看不到一种生成带有跨越多列的标头的表的明显方法。这是一个非常糟糕的黑客,可以解决你的问题。
正常生成您的表格。
在该页面的源代码中,表格的第一行看起来像
&lt; td someattribute =“somevalue”&gt;第一列名称&lt; / td&gt;&lt; td someattribute =“somevalue”&gt;第二列名称&lt; / td&gt;
您可以使用htmlTreeParse
包中的XML
或普通的readLines
将文件读入R中。
现在用正确的值替换html的有问题的位。 stringr
包可能对此有所帮助。
&lt; td someattribute =“somevalue”colspan =“2”&gt;列名跨越两列&lt; / td&gt;
并写回文件。