Ich arbeite derzeit an das Stricken einer R-Markup-Datei in PDF mit dem folgenden Code Chunk/Funktion inspiriert durch Benutzer Carlos Cinelli. Die benutzerdefinierte Abschlag Funktion ist der folgende:Overlapping Columns stricken R Markdown to PDF
```{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 ist ein data.frame mit einer Zeichenklasse Spalte (ID) und numerischer Klasse Spalten anders. Ich habe diese Funktion bereits verwendet, um andere Datenrahmen ohne Probleme in PDF, HTML und Word zu rendern.
Wenn Sie es jedoch mit CurrentTableData ausführen, wird die Ausgabetabelle gekürzt und die Spalten/Spaltenüberschriften überlappen sich. Ich habe die folgende ausgedruckt die Daten I (mit dput für Reproduzierbarkeit) müssen nachweisen, und die Probleme, die ich renne in:
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")
Beispiel problematische Ausgabe:
Als Erwähnenswert ist, dass die obige problematische Ausgabe die Spaltennamen umschließt, während meine vorherigen Ausgaben dies nicht taten (nicht notwendigerweise eine schlechte Sache, aber es ist etwas, was ich bemerkt habe - es wurden keine Änderungen an der Markdown-Funktion vorgenommen und die Spaltennamen waren für die anderen Ausgaben identisch). Ich habe versucht, die Größe zu ändern mit Optionen (Breite = # eine kleine Zahl) sowie in der Ausgabe: pdf_document: Dimensionen in der Hoffnung, dass es helfen könnte/passen Sie die Spalten auf der Seite, aber kein Glück.
Ich bin in R-Version 3.3.0 (2016-05-03) und läuft x86_64-Apple-Darwin13.4.0 (64-Bit).
Möchten Sie Ihre eigene Funktion verwenden? Dies könnte einfacher erreicht werden, indem zum Beispiel 'xtable()' aus dem Paket mit dem gleichen Namen verwendet wird. – Alex