在R中使用pandoc时,如何删除行名称上的强调字符

时间:2014-06-06 21:03:16

标签: r pandoc

我正在使用pandoc.table()打印出数据框对象,并通过指定参数emphasize.strong.cells突出显示某些单元格。但是,行名称上的相同重点字符会增加一些视觉复杂性。如何在行名称上删除这些强调字符。

2 个答案:

答案 0 :(得分:3)

感谢GitHub上的opening an issue for this feature request,现在应该可以了:

> panderOptions('table.split.table', Inf)
> pander(head(mtcars), emphasize.rownames = FALSE)

---------------------------------------------------------------------------------------
                mpg   cyl   disp   hp   drat   wt    qsec   vs   am   gear   carb 
------------------- ----- ----- ------ ---- ------ ----- ------ ---- ---- ------ ------
     Mazda RX4       21     6    160   110   3.9   2.62  16.46   0    1     4      4   

   Mazda RX4 Wag     21     6    160   110   3.9   2.875 17.02   0    1     4      4   

    Datsun 710      22.8    4    108    93   3.85  2.32  18.61   1    1     4      1   

  Hornet 4 Drive    21.4    6    258   110   3.08  3.215 19.44   1    0     3      1   

 Hornet Sportabout  18.7    8    360   175   3.15  3.44  17.02   0    0     3      2   

      Valiant       18.1    6    225   105   2.76  3.46  20.22   1    0     3      1   
---------------------------------------------------------------------------------------

> panderOptions('table.emphasize.rownames', FALSE)
> pander(head(mtcars))

---------------------------------------------------------------------------------------
                mpg   cyl   disp   hp   drat   wt    qsec   vs   am   gear   carb 
------------------- ----- ----- ------ ---- ------ ----- ------ ---- ---- ------ ------
     Mazda RX4       21     6    160   110   3.9   2.62  16.46   0    1     4      4   

   Mazda RX4 Wag     21     6    160   110   3.9   2.875 17.02   0    1     4      4   

    Datsun 710      22.8    4    108    93   3.85  2.32  18.61   1    1     4      1   

  Hornet 4 Drive    21.4    6    258   110   3.08  3.215 19.44   1    0     3      1   

 Hornet Sportabout  18.7    8    360   175   3.15  3.44  17.02   0    0     3      2   

      Valiant       18.1    6    225   105   2.76  3.46  20.22   1    0     3      1   
---------------------------------------------------------------------------------------

答案 1 :(得分:0)

以下是使用pander打印数据框的修复程序。

no.emphasis.table <- function(df){
  the.row.names <- rownames(df)
  add.space <- function(x){
    return(paste0(x, '&nbsp;'))
  }
  the.row.names.m <- as.vector(sapply(the.row.names, add.space))
  rownames(df) <- NULL
  df <- cbind(the.row.names.m, df)
  colnames(df)[1] <- ''
  v.justify <- vector()
  v.justify[seq(1, length(df))] <- 'center'
  v.justify[1] <- 'left'
  set.alignment(v.justify) # Need to explicitly set alignment for first column
  return(df)
}

打印前用此功能包装数据框,例如:

pander(no.emphasis.table(df))