在xtable输出中,如果我希望某些行中没有任何内容,我会将NA's 放在与我想要跳过的行相对应的矩阵元素中。
但是,这将导致 xtable 输出类似& & & & & & & & \\. 我想知道的是我如何制作它,所以它只\\适用于我希望跳过的那一行。
我正在用 R 生成一系列表格,一旦我在乳胶中报告它们,这些表格将包含分数。为此,我使用 paste() 函数在 r 中应用分数命令,但是当我对其进行 xtable 时,它在开头丢失了“\f”。下面是代码。您知道如何保留完整功能吗?谢谢
x <- as.vector(rbind(1, paste("\frac{",1, "}{", 2, "}", sep ="" )))
y <- as.vector(rbind(2, paste("\frac{", 2, "}{", 3, "}", sep ="" )))
table<- cbind(x,y)
xtable(table)
Run Code Online (Sandbox Code Playgroud) 我想改进html我使用包在R中生成的表的外观xtable:
library(xtable)
html.table = xtable(<mydataframe>)
digits(html.table) = 2
Run Code Online (Sandbox Code Playgroud)
我打印表使用:
html.tab = print(html.table, type = "html", floating = FALSE)
cat(html.tab, file = <html link>)
Run Code Online (Sandbox Code Playgroud)
我希望能够证明表中的文本,修改标题列的颜色,更改字体,...
有什么方法可以在R中实现这一点吗?
谢谢!
如何将 xtable 最后一行的内容加粗?底行包含总和,我希望它加粗。
我使用以下内容:
<<eval=TRUE,echo=FALSE,results='asis',warning=FALSE,message=FALSE,error=FALSE>>=
test.xt <- xtable(test, label="table", caption='test')
align(test.xt) <- "|l|l|r|r|r|r|r|r|"
print(test.xt, tabular.environment='tabularx', include.rownames = FALSE, width="\\textwidth", floating=FALSE)
@
Run Code Online (Sandbox Code Playgroud) 我正在使用 knitr 生成 PDF 文章。我想打印一系列表格,其间带有节标题。我正在 R 代码块中执行此操作。但不幸的是,发生的情况是第一个标题打印出来,然后是一个数字,然后其余的标题适合该页面,其余的表格在后面,而不是根据需要散布在标题中。
此页之后还有一系列 5 个表格,分别位于各自的页面上。
这是我正在使用的代码:
dfList <- list(alc_top, alc_bottom, cpg_home_top, cpg_home_bottom, electronics_top, electronics_bottom)
labels <- c("Premium Liquor Brand - Top Performers", "Premium Liquor Brand- Bottom Performers", "CPG Home - Top Performers", "CPG Home - Bottom Performers", "Electronics - Top Performers", "CPG Home - Bottom Performers")
for (i in 1:length(dfList)) {
df <- dfList[[i]]
product = "test"
cat(paste("\\section{",labels[i],"}", sep=""))
print(xtable(df,size="\\tiny"))
}
Run Code Online (Sandbox Code Playgroud)
我尝试cat("\\newpage")在循环内添加新行。这会为每个标签添加一个新页面,但所有图表都再次位于新部分之后。
我认为我需要为表格指定一个定位值(H 或 h 或 LaTex 中类似的值),但我不太确定如何使用 xtable 和 knit 来做到这一点。
我是R开发的新手,必须修改一些现有的代码.具体来说,我需要更改一个print()调用,以便删除多余的连续空格字符.
我找到了sanitize.text.function参数,并成功将我的自定义函数传递给print()函数.它完成了我需要做的事情.该代码如下:
print(xtable(x,...),type="html",
sanitize.text.function = function(s) gsub(" {2,}", "", s),...)
Run Code Online (Sandbox Code Playgroud)
现在我要做的是将"匿名"/"内联"函数代码提取到命名函数中,如此...
clean <- function(s) { gsub(" {2,}", "", s) }
print(xtable(x,...),type="html",sanitize.text.function = clean(s),...)
Run Code Online (Sandbox Code Playgroud)
但是,当我执行此操作时,我得到以下内容:
gsub中的错误("{2,}","",s):找不到对象的'
定义函数的愿望是双重的:
gsub()可能需要的更多或类似的执行,例如,
clean <- function(s) {
gsub(" {2,}", "", s)
gsub(">(.*?:)", "<span style=float:left>\1</span>", s)
}
print(xtable(x,...),type="html",sanitize.text.function = clean(s),...)
Run Code Online (Sandbox Code Playgroud) 我有以下数据帧:
> dput(py6s_pwc_16)
structure(list(source = c("AERONET", "BIGF", "MODIS"), ndvi_real = c(0.618,
0.618, 0.618), ndvi_95 = c("0.616", "0.616", "0.615"), ndvi_05 = c("0.62",
"0.62", "0.621"), perc_95 = c("-0.288", "-0.315", "-0.431"),
perc_05 = c("0.374", "0.289", "0.471")), .Names = c("source",
"ndvi_real", "ndvi_95", "ndvi_05", "perc_95", "perc_05"), row.names = c(NA,
-3L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
当我在R命令提示符下打印它时,它看起来像这样:
> py6s_pwc_16
source ndvi_real ndvi_95 ndvi_05 perc_95 perc_05
1 AERONET 0.618 0.616 0.62 -0.288 0.374
2 BIGF 0.618 0.616 0.62 -0.315 0.289
3 MODIS 0.618 0.615 0.621 -0.431 0.471
Run Code Online (Sandbox Code Playgroud)
我想使用生成此表的LaTeX表示xtable …
我想保持我使用align参数设置的列的宽度,xtable我想将所有数字列对齐到右边,其他人在左边,标题到中心.
我找到了一些使用直接写在rnw文件中的表的解决方案,但我想从文件加载我的数据,因为我的表非常大,可以在创建knitr文档时更改.
代码(我iris在本例中使用了数据集而不是我自己的数据):
<<table_symbionts_chunk, results="asis", echo=FALSE>>=
library(xtable)
irisX <-print (xtable (iris,
digits=rep(0,6),
align= c("p{0.015\\textwidth}|",
"p{0.37\\textwidth}|",
"p{0.12\\textwidth}|",
"p{0.08\\textwidth}|",
"p{0.02\\textwidth}|",
"p{0.35\\textwidth}|")))
@
Run Code Online (Sandbox Code Playgroud) 我正在使用创建R Markdown文档,knitr并且在xtable创建表时遇到了麻烦.我的表非常大,我正在尝试使用语句中的size命令减小大小print.我遇到的问题是该命令似乎添加了两个额外的花括号,它们显示在PDF中,一个在表之前,一个在之后.
有谁知道解决这个问题的方法?
MWE:
---
output:
pdf_document:
keep_tex: yes
tables: true
---
```{r, results='asis', echo=FALSE}
library(xtable)
my.df <- data.frame(matrix(c(1:18),nrow=2))
glossaryprint <- xtable(my.df, caption="Summary of Terms")
print(glossaryprint,
comment=FALSE,
floating=FALSE,
size="footnotesize"
)
```
Run Code Online (Sandbox Code Playgroud) 我想将 data.frame 转换为具有多列的(booktab)乳胶表,但我无法创建将 放在\toprule表顶部的输出。使用了以下数据
dat <- structure(c(841.8, 804.4, 135.1, 106.2, 0.7025, 0.09645, 305.2,
707.1, 449.3, 119.9, 0.7025, 0.09645), .Dim = c(2L, 6L), .Dimnames = list(
c("ev", "smooth"), c("Mean", "SD", "best", "Mean", "SD",
"best")))
> dat
Mean SD best Mean SD best
ev 841.8 135.1 0.70250 305.2 449.3 0.70250
smooth 804.4 106.2 0.09645 707.1 119.9 0.09645
addtorow <- list()
addtorow$pos <- list(-1)
addtorow$command <- '& \\multicolumn{3}{c}{Tab a}& \\multicolumn{3}{c}{Tab b}\\\\'
print(xtable(dat), add.to.row=addtorow, include.colnames=TRUE,booktabs=TRUE)
Run Code Online (Sandbox Code Playgroud)
输出看起来几乎正确,但\toprule位置错误。
\begin{table}[ht]
\centering
\begin{tabular}{rrrrrrr}
& …Run Code Online (Sandbox Code Playgroud)