3

我正在尝试使用 R 包surveypander快速生成表格和报告,但似乎无法按照我需要的方式格式化表格。我想在表格的适当单元格之后添加百分比符号。

这是我生成表格的代码。单元格被标准化为 100,所以我只需要以某种方式将百分比符号 (%) 添加到降价输出中。

library(pander)
library(survey)
employee_id <- c(1020:1069)
Q9_1 <- rep(as.factor(c('Unsatisfied','Neutral','Satisfied','Satisfied','Satisfied')),10)
employee <- data.frame(employee_id,Q9_1)
employee_survey <- svydesign(id=~1, weights=~1, data=employee)
pandoc.table(svytable(~Q9_1,employee_survey,Ntotal=100))

我只是在这里错过了一个简单的选择吗?我已经搜索和搜索,但没有找到任何有用的东西。

4

1 回答 1

5

可能是这些方面的东西,显然替换tblemployee_survey ......仍然未经测试。

scratch <- attr(tbl, "dimnames")
scratch$stype=paste(scratch$stype, "%")
scratch -> attr(tbl, "dimnames")
pandoc.table(tbl)

在单元格内容上可能有一些类似的过程。再次仅在示例中测试?svytable

 ntbl <- as.character(round(tbl, 2))
 ntbl <- paste(ntbl, "%")
 attributes(ntbl) <- attributes(tbl)
 ntbl
 #---------------    
    stype
sch.wide E        H        M       
     No  406.16 % 101.54 % 270.78 %
     Yes 4467.8 % 372.32 % 575.4 % 
 #-------------
pandoc.table(ntbl)
#----------------------------------

------------------------------------
 &nbsp;      E        H        M    
--------- -------- -------- --------
 **No**   406.16 % 101.54 % 270.78 %

 **Yes**  4467.8 % 372.32 % 575.4 % 
------------------------------------

根据您希望显示有效数字的方式,这也是可能的:

 ntbl <- format(round(tbl, 2),digits=5)
 attributes(ntbl) <- attributes(tbl)
 pandoc.table(ntbl)

-------------------------------
 &nbsp;      E      H      M   
--------- ------- ------ ------
 **No**   406.16  101.54 270.78

 **Yes**  4467.80 372.32 575.40
-------------------------------
于 2013-06-27T23:55:23.857 回答