【发布时间】:2016-06-14 14:09:50
【问题描述】:
我目前正在使用受用户 Carlos Cinelli 启发的以下代码块/函数将 R markdown 文件编织为 PDF。自定义markdown函数如下:
```{r set-options, echo = FALSE, results = 'asis'}
rmarkdownTable <- function(df){
cat(paste(names(df), collapse = "|"))
cat("\n")
cat(paste(rep("-", ncol(df)), collapse = "|"))
cat("\n")
for(i in 1:nrow(df)){
cat(paste(df[i,], collapse = "|"))
cat("\n")
}
invisible(NULL)
}
rmarkdownTable(CurrentTableData)
```
CurrentTableData 是一个具有一个字符类列 (ID) 和数字类列的 data.frame。我已经使用此功能将其他数据帧呈现为 PDF、html 和 Word,没有任何问题。
但是,当在 CurrentTableData 上运行它时,输出表会被折叠起来,并且列/列标题都重叠。我打印了以下内容来展示我拥有的数据(使用dput 以实现可重复性)以及我遇到的问题:
CurrTableDataList <- dput(head(CurrentTableData))
structure(list(ASIN = c("B0000004Y8", "B000000OQI", "B000000XB8",
"B0000017CI", "B000001A3H", "B000001ELB"), `NewPrice USD` = c("34.77",
"27.61", "21.49", "14.13", "16.49", "14.61"), `CurrentPrice USD` = c("43.50",
"35.98", "24.98", "12.98", "19.98", "19.98"), `FBAfees USD` = c("8.72",
"7.56", "6.68", "5.53", "5.88", "5.60"), `AddFees USD` = c("4.80",
"3.82", "2.97", "1.96", "2.28", "2.01"), `Cost USD` = c("20.78",
"14.63", "10.09", "6.48", "6.95", "5.30"), `AllFees USD` = c("34.30",
"26.01", "19.74", "13.97", "15.11", "12.91"), `NewProfit USD` = c("0.47",
"1.60", "1.75", "0.16", "1.38", "1.70"), `NewProfit CAD` = c("0.60",
"2.05", "2.24", "0.21", "1.77", "2.18"), `CurrentProfit CAD` = c("3.27",
"1.48", "1.81", "1.53", "1.56", "0.52"), `New % Profit` = c("2.25",
"10.93", "17.32", "2.53", "19.87", "32.11"), `Current % Profit` = c("22.22",
"8.22", "14.55", "18.43", "18.22", "7.91"), SalesRank = c(10153,
4809, 550, 13569, 6647, 5164)), .Names = c("ASIN", "NewPrice USD",
"CurrentPrice USD", "FBAfees USD", "AddFees USD", "Cost USD",
"AllFees USD", "NewProfit USD", "NewProfit CAD", "CurrentProfit CAD",
"New % Profit", "Current % Profit", "SalesRank"), row.names = c(NA,
6L), class = "data.frame")
有问题的输出示例:
值得一提的是,上面有问题的输出包含列名,而我之前的输出没有(不一定是坏事,但我注意到了 - 没有对降价函数进行任何更改,列名是其他输出相同)。我尝试使用 options(width = #some number) 以及在输出中调整大小: pdf_document: dimensions 希望它可能有助于在页面上调整/间隔列,但没有运气。
我在 R 版本 3.3.0 (2016-05-03) 中运行 x86_64-apple-darwin13.4.0(64 位)。
【问题讨论】:
-
您要使用自己的功能吗?例如,使用同名包中的
xtable()可以更轻松地实现这一点。
标签: r rstudio knitr r-markdown