所以我想在数据框的列名中使用单词之间的空格,并将数据框打印为乳胶格式的pdf。但是,当我使用xtable()
执行此操作时,列的名称将被连接。
例如,我希望第二列的标题看起来像#34; Categoria de Referencia"。相反,我得到的是:
有人知道如何解决这个问题吗?这里是将数据框转换为乳胶的R块:
tab<-xtable(dat,caption="Efectos de las Variables sobre la Probabilidad de Conversión",digits=2)
print(tab,latex.environments = "center",include.rownames=FALSE)
这是生成数据帧的代码:
structure(list(Variable = structure(c(4L, 3L, 3L, 3L, 3L, 3L,
2L, 1L), .Label = c("App", "Clicker", "País", "Uso"), class = "factor"),
Categoría.de.Referencia = structure(c(3L, 1L, 1L, 1L, 1L,
1L, 2L, 4L), .Label = c("Brasil", "Clicker", "No Acaba Unidad",
"No Usa App"), class = "factor"), Categoría.Considerada = structure(c(1L,
2L, 3L, 4L, 5L, 7L, 6L, 8L), .Label = c("Acaba la Unidad",
"España", "Francia", "ITalia", "Méjico", "No Cliker", "Otros Países",
"Usa App"), class = "factor"), Variación = structure(c(8L,
4L, 5L, 6L, 1L, 2L, 3L, 7L), .Label = c("-0.19%", "-0.46%",
"-2.32%", "0.31%", "0.46%", "0.7%", "1.15%", "2.08%"), class = "factor")), .Names = c("Variable",
"Categoría.de.Referencia", "Categoría.Considerada", "Variación"
), row.names = c(NA, -8L), class = "data.frame")
答案 0 :(得分:4)
您最好的选择可能是使用sanitize.*
选项,例如:
> print.xtable(xtable(dat),include.rownames=F,
sanitize.colnames.function=function(x)gsub("\\."," ",x))
% latex table generated in R 3.2.1 by xtable 1.7-4 package
% Thu Aug 20 10:47:54 2015
\begin{table}[ht]
\centering
\begin{tabular}{llll}
\hline
Variable & Categoría de Referencia & Categoría Considerada & Variación \\
\hline
Uso & No Acaba Unidad & Acaba la Unidad & 2.08\% \\
País & Brasil & España & 0.31\% \\
País & Brasil & Francia & 0.46\% \\
País & Brasil & ITalia & 0.7\% \\
País & Brasil & Méjico & -0.19\% \\
País & Brasil & Otros Países & -0.46\% \\
Clicker & Clicker & No Cliker & -2.32\% \\
App & No Usa App & Usa App & 1.15\% \\
\hline
\end{tabular}
\end{table}
来自?print.xtable
:
sanitize.text.function
清除所有非数字输入(行和列名称除外)以尝试删除对输出格式具有特殊含义的字符。如果sanitize.text.function
不是NULL
(默认值),它应该是一个带有字符向量并返回一个的函数,并将用于清理而不是默认的内部函数
sanitize.colnames.function
的情况相同。
如果您希望对名称进行全面检修(以便您不能regex
通往上述自由之路),则另一个选项是将dat
转换为矩阵并设置colnames
:
datmat<-as.matrix(dat)
colnames(datmat)<-c("Variable","Categoría de Referencia",
"Categoría Considerada", "Variación")
print.xtable(xtable(datmat),include.rownames=F)