我正在尝试使用xtable
包编写带有复选框的表。我选择的复选框似乎是引发错误的原因。我只是不知道如何解决它。
library(xtable)
## I want to create a table with the names of some people in two columns
nStu = 10
## Create fake names
names = character(nStu)
for(i in 1:nStu){
names[i] = paste(LETTERS[i],rep(letters[i],5),sep='',collapse='')
}
## put check boxes behind each of the names
squares = rep('$ \\square $',nStu)
## Build the table
rosterTab = data.frame('Name'=names,'Mostly'=squares,'Sometimes'=squares, stringsAsFactors = FALSE)
## Now chop it in half and paste the halves together. (Yes, if nStu is odd, this will have to be fixed)
lTab = nStu%/%2
aTab = rosterTab[1:lTab, ]
bTab = rosterTab[(lTab+1):nStu, ]
outTab = cbind(aTab,bTab)
## Everything before this point runs fine.
outTab.tab = xtable(outTab,label=FALSE)
align(outTab.tab) = 'llcc||lcc'
print(outTab.tab, include.rownames=FALSE, sanitize.text.function = function(x){x})
我收到的错误消息是:
as.string(y) 中的错误:无法将参数强制转换为字符串
如果我使用,这个错误就会消失:
squares = rep('aaa',nStu)
理想情况下,我想从 csv 文件中获取名称(我可以很容易地做到这一点),并将使用 knitr 将其写入 LaTeX 文档。(我想为一堆输入文件执行此操作,因此自动执行此任务对我来说似乎很有用。)
以下是我考虑过的其他一些想法:
- $\LaTeX$ 唯一的解决方案。请注意,还有另一个困难(除了输入文件中没有的正方形),那就是我需要对输入文件中的字符串进行一些文本操作。
\square
用其他看起来像复选框的对象替换符号,(通过 knitr)我可以发送到 $\LaTeX$。