nach langem Hin und Her haben wir uns (als Neueinsteiger in R) entschieden unsere Daten nicht mit r-markdown sondern mittels officer in einem Word-Dokument zu präsentieren. Soweit so gut, jetzt mein Problem: Ich erzeuge im Vorfeld verschie-dene flextables die ich dann ich das Word-Dokument einbinde. Nun möchte ich jedoch anhand eine if-else-Bedingung Tabellen selektieren, die dargestellt werden sollen. Der Code sollte meiner Meinung nach etwa so aussehen:
Code: Alles auswählen
# Einlesen der Word-Vorlage
docTest <- read_docx("C:/Vorlage.docx")
# Setzen der Bedingungsvariable aus den Tabellendaten
wert <- as.integer(Daten_Tabelle_A[nrow(Daten_Tabelle_A), 2])
# if-Bedingung
if (wert < 3) {
body_add_par("", style = "Normal") # Leerzeile einfügen
} else {
body_add_flextable(Tabelle_A) %>% # Tabelle einfügen
} %>%
# Ausgabe
print(docTest, target = "C:/Dateiname.docx")
Wenn ich das so durchlaufen lassen erhalte ich folgendes:
Code: Alles auswählen
> docTest <- read_docx("C:/Vorlage.docx")
> wert <- as.integer(Daten_Tabelle_A[nrow(Daten_Tabelle_A), 2])
> if (wert < 3){
+ body_add_par("Test", style = "Normal")
+ } else{
+ body_add_flextable(Tabelle_A)
+ }
Error in body_add_flextable(Tabelle_t6_8ac) :
inherits(x, "rdocx") is not TRUE
>
> print(docTest, target = "C:/Dateiname.docx")
[1] " C:/Dateiname.docx "
>
Das Worddokument wird erstellt, ist aber leer.
Ich vermute, dass innerhalb einer if-else-Bedingung keine officer-Befehle funktionieren.
Vielleicht hat jemand ähnliche Erfahrungswerte und kann mir ggfls. auch einen Lösungsansatz geben.
Vielen Dank
Till