Bah, les commentaires sont trop petits. Quoi qu'il en soit, @Dirk a tout à fait raison.
R n'a pas besoin d'être informé que le code commence à la ligne suivante. Il est plus intelligent que Python ;-) et continuera simplement à lire la ligne suivante chaque fois qu'il considérera l'instruction comme "non terminée". En fait, dans votre cas, il est également passé à la ligne suivante, mais R prend le retour comme un caractère lorsqu'il est placé entre "".
Attention, vous devrez vous assurer que votre code n'est pas terminé. Comparer
a <- 1 + 2
+ 3
avec
a <- 1 + 2 +
3
Ainsi, lors de la diffusion de code sur plusieurs lignes, vous devez vous assurer que R sait que quelque chose arrive, soit en:
- en laissant un support ouvert, ou
- terminer la ligne avec un opérateur
Lorsque nous parlons de chaînes, cela fonctionne toujours, mais vous devez être un peu prudent. Vous pouvez ouvrir les guillemets et R lira jusqu'à ce que vous le fermiez. Mais chaque caractère, y compris la nouvelle ligne, sera vu comme faisant partie de la chaîne:
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.
C'est la raison pour laquelle dans ce cas, votre code n'a pas fonctionné: un chemin ne peut pas contenir de caractère de nouvelle ligne ( \n
). C'est aussi pourquoi il vaut mieux utiliser la solution avec paste()
ou paste0()
Dirk proposée.