作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 xtabs
将一些包含 NA
的数据制成表格。为了确保总数完整,我使用 addNA
来计算缺失因子水平的数量。
但是,当使用 xtable
导出到 LaTeX for Sweaving 时,这会导致问题,因为现在行和列名称中存在 NA
。我有一个解决方案:
rownames(tab)[is.na(rownames(tab))]<-"NA"
colnames(tab)[is.na(colnames(tab))]<-"NA"
但这对于很多表来说可能会变得令人厌烦,有没有一种方法可以更自动地执行此操作?或者是否有更好的方法来生成表格?
最佳答案
有趣的问题。我也找不到使用 xtable 本身来处理这个问题的方法。因此,我能建议的最好方法是将您的解决方法变成一个可以轻松调用的小函数。
例如:
# Construct some data
df <- data.frame(
x1 = addNA(sample(c(NA, LETTERS[1:4]), 100, replace = TRUE)),
x2 = addNA(sample(c(NA, letters[24:26]), 100, replace = TRUE))
)
# Create a function to rename NA row and column names in a data.frame
rename_NA <- function(x){
rownames(x)[is.na(rownames(x))] <- "NA"
colnames(x)[is.na(colnames(x))] <- "NA"
x
}
tab <- rename_NA(xtabs(~x1+x2, data=df))
xtable(tab)
这将创建有效的 latex ,没有错误:
% latex table generated in R 2.13.0 by xtable 1.5-6 package
% Wed Apr 27 17:20:21 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrr}
\hline
& x & y & z & NA \\
\hline
A & 4.00 & 7.00 & 10.00 & 4.00 \\
B & 6.00 & 5.00 & 4.00 & 2.00 \\
C & 8.00 & 4.00 & 4.00 & 2.00 \\
D & 8.00 & 5.00 & 1.00 & 6.00 \\
NA & 5.00 & 2.00 & 7.00 & 6.00 \\
\hline
\end{tabular}
\end{center}
\end{table}
关于r - 如何让addNA和xtable一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806714/
我是一名优秀的程序员,十分优秀!