我正在使用xtable来生成放入Latex的表格,并且想知道是否有一种方法可以对单元格进行条件格式化,以便所有重要的p值都是灰色的?我在TexShop中使用Knitr.
以下是使用一个例子diamonds中的数据GGPLOT2,并运行一个测试TukeyHSD来预测carat从cut.
library(ggplot2)
library(xtable)
summary(data.aov <- aov(carat~cut, data = diamonds))
data.hsd<-TukeyHSD(data.aov)
data.hsd.result<-data.frame(data.hsd$cut)
data.hsd.result
Run Code Online (Sandbox Code Playgroud)
然后我可以data.hsd.result进入xtable格式:
xtable(data.hsd.result)
Run Code Online (Sandbox Code Playgroud)
在Latex中,输出如下所示:
diff lwr upr p.adj
Good-Fair -0.19695197 -0.23342631 -0.16047764 0.000000e+00
Very Good-Fair -0.23975525 -0.27344709 -0.20606342 0.000000e+00
Premium-Fair -0.15418175 -0.18762721 -0.12073628 0.000000e+00
Ideal-Fair -0.34329965 -0.37610961 -0.31048970 0.000000e+00
Very Good-Good -0.04280328 -0.06430194 -0.02130461 5.585171e-07
Premium-Good 0.04277023 0.02165976 0.06388070 3.256208e-07
Ideal-Good -0.14634768 -0.16643613 -0.12625923 0.000000e+00
Premium-Very Good 0.08557350 0.06974902 0.10139799 0.000000e+00
Ideal-Very Good -0.10354440 -0.11797729 -0.08911151 0.000000e+00
Ideal-Premium -0.18911791 -0.20296592 …Run Code Online (Sandbox Code Playgroud) 如果列联表中的属性类别仅仅是数字,仅使用这些数字作为列/行标题是不够的 - 需要描述数字的含义.下图显示了家庭样本中家庭人数与外国人人数的交叉分类:

有没有人有使用R + LaTeX生产此类表的经验?
亲爱的R xtable和knitr用户:我几天来一直在努力解决这个问题,我很惊讶没有一个人已经报道过类似的案例.非常感谢您的见解和帮助.
我使用xtable制作两个或更多表.表中的行交替着色.第一张表很好.但从第二个表(或更多)开始,最左边的标题单元格总是变黑.
不幸的是,这是非常可重复的.在第一张漂亮的桌子后,我总是得到完全相同的黑色标题.以下是重现它的代码:
\documentclass{article}
\usepackage{booktabs}
\usepackage{colortbl, xcolor}
\begin{document}
<<echo=TRUE,results='asis'>>=
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
mydata <- data.frame(employee, salary)
rws <- seq(1, (nrow(mydata)), by = 2)
col <- rep("\\rowcolor[gray]{0.90}", length(rws))
library(xtable)
print(xtable(mydata, caption="Test"), booktabs = TRUE,
include.rownames = FALSE, caption.placement = "top",
sanitize.colnames.function = identity,
add.to.row = list(pos = as.list(rws), command=col))
print(xtable(mydata, caption="Test"), booktabs = TRUE,
include.rownames = FALSE, caption.placement = "top",
sanitize.colnames.function = identity,
add.to.row = list(pos = as.list(rws), command=col))
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
输出: …
xtable在Sweave工作中很棒,但每回归一张表.你可以给它一个数据帧,也一样,所以我一直在手动rbind荷兰国际集团和paste荷兰国际集团成果转化为数据帧,但是这似乎并不十分扩展.
是否有更自动化/更强大的解决方案xtable,但是在多个lm对象上?我在纸张/书籍中看到的所有表格都是手动生成的吗?是否有一个更好的解决方案,我的janky代码生成一个数据框来提供xtable?
library(reshape2)
data <- data.frame(matrix(rnorm(50), 10, 5))
names(data) <- letters[1:5]
l.raw <- list()
l.raw[["a"]] <- lm(a ~ d + e, data=data)
l.raw[["b"]] <- lm(b ~ d + e, data=data)
l.raw[["c"]] <- lm(c ~ d + e, data=data)
form.table.from.lm <- function(l.raw) {
summ <- list()
for (i in names(l.raw)) {
temp <- coef(summary(l.raw[[i]]))
summ[[i]] <- data.frame(param=rownames(temp), test=i, temp)
}
df.res <- do.call("rbind", summ)
df.res <- transform(df.res, t.value …Run Code Online (Sandbox Code Playgroud) 有没有办法在生成带有longtable选项的xtable时重复顶行/设置标题?
例如,如果我有
tableSb <- xtable(df, caption="A Very Long Table", label="ALongTable")
print(tableSb, include.rownames=TRUE, tabular.environment="longtable", floating=FALSE)
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但是当表格滚动到新页面时,标题不会重复.有什么建议 ?
我得到了一些报告,其中包含一些包含比例和绝对值的表格.现在我想显示包含digits=2精度比例的行,而绝对值只显示digits=0.我知道xtable
使用这样的调用可以开箱即用
xtable(tableWith3Cols,digits=c(0,0,2,2))
Run Code Online (Sandbox Code Playgroud)
但有没有办法按行进行同样的事情?
编辑:这是一个可重复的例子
require(xtable)
df <- data.frame(col1=rnorm(10),col2=runif(10,1,3))
xtable(df,digits=c(0,5,0))
Run Code Online (Sandbox Code Playgroud)
回声
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Fri Jan 18 18:58:47 2013
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrr}
\hline
& col1 & col2 \\
\hline
1 & -0.79222 & 3 \\
2 & 0.24845 & 2 \\
3 & 0.24217 & 2 \\
4 & -0.19935 & 2 \\
5 & 0.47873 & 2 \\
6 & 1.10494 & 2 \\
7 …Run Code Online (Sandbox Code Playgroud) 在我提出问题之前,让我创建一些数据.
my.data <- data.frame(A = sample(seq(1,100,by=5),10,replace=TRUE),W = rnorm(10),X =sample(1:10),Y = sample(c("yes", "no"), 10, replace = TRUE),Z=sample(c('a','b','c','d'),10,replace=TRUE))
attach(my.data)
my.d <- xtabs(W~Z+Y+A);my.d
table.data <- ftable(my.d)
result1 <- round(table.data,2)
Run Code Online (Sandbox Code Playgroud)
result1看起来像......
A 6 11 16 26 71 76 86 91
Z Y
a no 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
yes 0.00 0.56 0.00 0.00 0.00 0.79 0.00 0.01
b no 0.61 0.00 -0.22 0.14 0.00 0.00 -0.08 1.71
yes 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
c no 0.00 0.00 …Run Code Online (Sandbox Code Playgroud) 我想在xtable输出中标注尺寸.但是,xtable即使我手动指定它们,表方法也不会输出维度标签table:
set.seed(10)
d <- data.frame(x=sample(1:4),y=sample(1:4))
tb <- with(d, table(d,dnn=c("Xs","Ys")))
> tb
Ys
Xs 1 2 3 4
1 0 0 0 1
2 0 1 0 0
3 1 0 0 0
4 0 0 1 0
> xtable(tb)
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Tue Oct 9 09:06:10 2012
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrr}
\hline
& 1 & 2 & 3 & 4 \\
\hline
1 & 0 & …Run Code Online (Sandbox Code Playgroud) 我想在R标记文件中打印一个带有数据框的更好的表格,我知道如何使用kable它来打印它,但我想要一些更多的控制选项,我正在尝试使用该xtable软件包.但是,我真的遇到了一个愚蠢的问题,即它不会打印表格而是html文件中的代码.因此,例如,如果我想打印默认数据集,cars我会这样做:
```{r}
library(xtable)
print(xtable(head(cars)), type = "html")
```
Run Code Online (Sandbox Code Playgroud)
这给了我这段HTML代码.
## <!-- html table generated in R 3.2.5 by xtable 1.8-2 package -->
## <!-- Wed May 25 19:06:33 2016 -->
## <table border=1>
## <tr> <th> </th> <th> speed </th> <th> dist </th> </tr>
## <tr> <td align="right"> 1 </td> <td align="right"> 4.00 </td> <td align="right"> 2.00 </td> </tr>
## <tr> <td align="right"> 2 </td> <td align="right"> 4.00 </td> <td align="right"> 10.00 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从R数据框生成HTML表输出,并且无法获取一些长列名称来换行多行标题行.这是我当前代码和输出的最小可重现示例:
library(datasets)
library(knitr)
library(kableExtra)
data(iris)
Run Code Online (Sandbox Code Playgroud)
将前5行iris表输出为html格式表:
sink('my_file_path.html')
names_spaced <- c('Sepal Length', 'Sepal Width', 'Petal Length',
'Petal Width Long Col Name', 'Species')
kable(head(iris),
format='html',
digits=1,
row.names=FALSE,
align='lccccc',
col.names = names_spaced)
sink()
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中打开保存的文件时,我的标题行只是一行,但我需要将这些单词换行到一行或两行(因此'Petal Width Long Col Name').
kable_styling函数有一个参数,bootstrap_options但似乎没有我需要的东西.我也尝试\n在列名中插入但无济于事.
非常感谢解决方案.不反对使用xtable包而不是kable/ knitr如果这是解决方案的一部分.
r ×10
xtable ×10
knitr ×4
latex ×3
alternating ×1
conditional ×1
formatting ×1
html-table ×1
longtable ×1
r-markdown ×1
rounding ×1
sweave ×1