Бах, комментарии слишком малы. Во всяком случае, @Dirk очень прав.
R не нужно сообщать, что код начинается со следующей строки. Он умнее, чем Python ;-) и просто продолжит читать следующую строку всякий раз, когда он считает это выражение «не завершенным». На самом деле, в вашем случае он также перешел на следующую строку, но R принимает возврат как символ, когда он находится между "".
Имейте в виду, вы должны убедиться, что ваш код не закончен. сравнить
a <- 1 + 2
+ 3
с участием
a <- 1 + 2 +
3
Таким образом, при распределении кода по нескольким строкам вы должны убедиться, что R знает, что что-то идет, либо:
- оставив скобку открытой, или
- окончание строки оператором
Когда мы говорим о строках, это все еще работает, но вы должны быть немного осторожнее. Вы можете открыть кавычки, и R будет читать, пока вы не закроете его. Но каждый символ, включая символ новой строки, будет рассматриваться как часть строки:
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.
Вот почему в этом случае ваш код не работал: путь не может содержать символ новой строки ( \n
). Так что также объясняет , почему лучше использовать решение с paste()
или paste0()
предложенным Dirk.