Bah, Kommentare sind zu klein. Wie auch immer, @Dirk ist sehr richtig.
R muss nicht mitgeteilt werden, dass der Code in der nächsten Zeile beginnt. Es ist schlauer als Python ;-) und liest einfach die nächste Zeile weiter, wenn es die Aussage als "nicht fertig" betrachtet. In Ihrem Fall ging es tatsächlich auch in die nächste Zeile, aber R nimmt die Rückgabe als Zeichen, wenn sie zwischen "" steht.
Wohlgemerkt, Sie müssen sicherstellen, dass Ihr Code nicht fertig ist. Vergleichen Sie
a <- 1 + 2
+ 3
mit
a <- 1 + 2 +
3
Wenn Sie also Code über mehrere Zeilen verteilen, müssen Sie sicherstellen, dass R weiß, dass etwas kommt, entweder durch:
- eine Klammer offen lassen oder
- Beenden der Zeile mit einem Operator
Wenn wir über Strings sprechen, funktioniert dies immer noch, aber Sie müssen etwas vorsichtig sein. Sie können die Anführungszeichen öffnen und R liest weiter, bis Sie es schließen. Aber jedes Zeichen, einschließlich der Newline, wird als Teil der Zeichenfolge angesehen:
x <- "This is a very
long string over two lines."
x
## [1] "This is a very\nlong string over two lines."
cat(x)
## This is a very
## long string over two lines.
Aus diesem Grund hat Ihr Code in diesem Fall nicht funktioniert: Ein Pfad darf kein Zeilenumbruchzeichen ( \n
) enthalten. Deshalb sollten Sie die Lösung auch besser mit paste()
oder von paste0()
Dirk vorgeschlagen verwenden.