2

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 ドキュメントに書き込みます。(入力ファイルの束に対してこれを行いたいので、このタスクを自動化すると便利です。)

私が検討した他のいくつかのアイデアを次に示します。

  1. $\LaTeX$ のみのソリューション。もう 1 つの問題 (四角形が入力ファイルにないこと以外) があることに注意してください。それは、入力ファイル内の文字列に対して何らかのテキスト操作を行う必要があることです。
  2. \squareシンボルをチェックボックスのような他のオブジェクトに置き換えて、 (knitr を介して) $\LaTeX$ に送信できます。
4

0 に答える 0