使用hwrite跨越列

时间:2011-04-14 15:14:29

标签: r

是否可以使用hwrite(或任何其他HTML创建包)跨越多个列的标题?我可以用嵌套在一个更大的表中的数据帧来伪装它,但它不是真正的跨度(它看起来很难看)。

我在examples中没有看到这个版本,但也许在其他地方存在。

谢谢, 汤姆

2 个答案:

答案 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)

我看不到一种生成带有跨越多列的标头的表的明显方法。这是一个非常糟糕的黑客,可以解决你的问题。

  1. 正常生成您的表格。

  2. 在该页面的源代码中,表格的第一行看起来像

    &lt; td someattribute =“somevalue”&gt;第一列名称&lt; / td&gt;&lt; td someattribute =“somevalue”&gt;第二列名称&lt; / td&gt;

  3. 您可以使用htmlTreeParse包中的XML或普通的readLines将文件读入R中。

  4. 现在用正确的值替换html的有问题的位。 stringr包可能对此有所帮助。

    &lt; td someattribute =“somevalue”colspan =“2”&gt;列名跨越两列&lt; / td&gt;

  5. 并写回文件。