2011-04-14 119 views
2

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

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

感谢, 汤姆

回答

6

编辑:我应该补充一点,print.xtable方法没有html,也(我不应该假设这是已知的)。使用type = "html"选项。


没有使用html的经验,但我使用LaTeX做了如下工作。

xtable包中,print.xtable方法有一个选项add.to.row,允许您这样做。对于add.to.row,您添加一个列表清单,其中第一个列表是行号列表,第二个列表是在该位置插入的命令列表。从?print.xtable

add.to.row - 两个 组件列表。第一个组件(其中 应该被称为'pos')是一个列表 包含 末尾应添加额外命令的行的位置,第二个组件(其中 应该被称为“command”)是一个 相同长度的字符向量 第一个包含 命令的组件,该命令应添加到指定行的 末尾。默认 值为NULL,即不添加 命令。

对于乳胶我使用以下自制命令,在系数和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

谢谢@richardh,它的工作原理!为了完成这个,这里是一些HTML输出的代码。 (x,type =“html”,file =“d: - data.frame(x = 1:5,y = 6:10) ' Numbers“))) ' – Tom 2011-06-10 10:25:48

1

我看不到生成具有跨多个列标题的表的一个明显的方式。这是一个非常糟糕的黑客,可能会解决您的问题。

  1. 正常生成表格。

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

    < TD someattribute = “someValue中” >第一列名</TD > < TD someattribute = “someValue中” >第二列名</TD >

  3. 可以读取文件到R,要么htmlTreeParseXML包,或纯老readLines

  4. 现在用正确的值替换html的违规位。 stringr软件包在这里很有帮助。

    < TD someattribute = “someValue中” 合并单元格= “2” >列名跨越两列</TD >

  5. 而且写回到文件。

+0

谢谢,里奇。这也是我想到的笨手笨脚的解决方法,除了你已经说明了我不知道的R命令。如果我必须走这条路,你为我节省了很多研究成果! – Tom 2011-04-15 07:46:08