2016-01-20 12 views
0

我正在使用R軟件包「sparkTable」爲PDF報告創建一些降價表格。我有我想要的表格和圖表,但我似乎沒有看到格式化表格內的任何條款。在諸如kable和pander之類的東西中,您可以設置文本的位置,但似乎沒有辦法使用sparkTable。也許有一些LaTeX的做法。如果有人有任何想法,我會很感激。謝謝!R sparkTable格式 - 中心文本

+0

請用來爲R問題添加一個最小可重現的示例。 – lukeA

回答

0

好了 - 我想通了這一點。原來sparkTable使用R中的xtable包格式化輸出 - 默認情況下,一旦被轉換到膠乳具有在表的部分的取向是:

\開始{片狀} {rllll}

這是沒有通過的選擇。我發現,在包源的 「methods.R」 腳本和添加的選項:

ALIGN = 'rccccc'

在兩個地方的xtable選項(線1287和1314):

1287 : 打印(XT < - xtable(米,對齊= 'rcccc'),sanitize.text.function =函數(X){X},註釋= infonote)

1314: 打印(XT < - xtable( m,align ='rcccc'),sanitize.text.function = function(x){x})

一旦完成,我建立了包並重新安裝它。我用減價重新編織了pdf,瞧!我的數據集中在那些後面的列中。

我知道這是更多的自定義解決方案,但我只使用此設置的數據量,它適用於我的需要。由於sparkTable在自己的代碼中使用xtable,因此我無法通過這些選項(我知道),所以我將它編碼在源代碼中。如果在將來的版本中,在sparkTable級別允許居中和格式化,但這會很好,但現在可行。

現在我只需要弄清楚字體和我全部設置。感謝上述反饋,上述解決方案並沒有直接起作用,但指出了我的正確方向。謝謝!

1

也許內聯CSS是一種選擇:

library(sparkTable) 
data(pop,package="sparkTable") 
content <- list(
    function(x) { 
    x <- round(mean(x),2) 
    ifelse(x>1000, sprintf('<span style="color:#ff0000">%s</span>', x), # red numbers 
        sprintf('<span style="color:#0000ff">%s</span>', x)) # blue numbers 
    }, 
    newSparkBox(), 
    newSparkLine(), 
    newSparkBar(), 
    function(x) { round(tail(x,1),2) } 
) 
names(content) <- paste("column",1:length(content),sep="") 
varType <- rep("value",length(content)) 
pop <- pop[,c("variable","value","time")] 
pop$time <- as.numeric(as.character(pop$time)) 
xx <- reshapeExt(pop,idvar="variable", varying=list(2)) 
x1 <- newSparkTable(xx, content, varType) 
showSparkTable(x1)