2013-03-30 31 views
6

我想用xtable在html中創建一個表,但我需要添加一個類到特定td標記,因爲我要做一個動畫。問題是我不能沒有xtable,因爲它太慢了。用xtable和type = 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和閃亮。

+1

我們可以得到一些樣本數據和期望的輸出應該是什麼樣子? –

回答

1

問題在於,您每增加一個字符串都會增長一個字符串: ,它必須複製到新的內存位置。 首先構建數據的速度更快,如數組 ,然後才能將其轉換爲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") 
+0

謝謝你的答案,但應用程序需要大量的時間來運行你的源代碼,這就是繼續使用xtable的原因,如果有人知道其他選項請告訴我。 – user2029940

相關問題