我正在尝试使用xtable在html中创建一个表,但是我需要向特定的td标签添加一个类,因为我要制作动画。问题是没有xtable我就做不到,因为它太慢了。

也许我需要用xtable来代表这一点。

myRenderTable<-function(){
  table = "<table>"
  for(i in 1:4862){
    table = paste(table,"<tr><td>",i,"</td>",sep="")
    for(j in 1:5){

      if(j == 5){
        table = paste(table,"<td class ='something'>",i+j,"</td>",sep="")
      }
      else{
        table = paste(table,"<td>",i+j,"</td>",sep="")
      }
    }
    table = paste(table,"</tr><table>")
  }
  return(table)
}

如果我使用xtable完成此操作,则我的应用程序需要15秒,但是如果我使用myRederTable函数完成此操作,则我的应用程序需要2分钟,因此,如何使用xtable将此类放入td中。

我正在使用R和Shiny。

最佳答案

问题在于您正在增长一个字符串:
每次添加到它时,都必须将其复制到新的存储位置。
首先以数组形式构建数据更快,
然后才能将其转换为HTML。

# Sample data
n <- 4862
d <- matrix(
  as.vector( outer( 0:5, 1:n, `+` ) ),
  nr = 10, nc = 6*n, byrow=TRUE
)
html_class <- ifelse( col(d) %% 6 == 0, " class='something'", "" )

# The <td>...</td> blocks
html <- paste( "<td", html_class, ">", d, "</td>", sep="" )
html <- matrix(html, nr=nrow(d), nc=ncol(d))

# The rows
html <- apply( html, 1, paste, collapse = " " )
html <- paste( "<tr>", html, "</tr>" )

# The table
html <- paste( html, collapse = "\n" )
html <- paste( "<table>", html, "</table>", sep="\n" )

关于html - 使用xtable和type = html如何将类添加到特定的td标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15720060/

10-12 20:53