Bah, os comentários são muito pequenos. De qualquer forma, o @Dirk está muito certo.
R não precisa ser informado de que o código começa na próxima linha. É mais inteligente que o Python ;-) e continuará a ler a próxima linha sempre que considerar a declaração como "não concluída". Na verdade, no seu caso, ele também foi para a próxima linha, mas R assume o retorno como um personagem quando é colocado entre "".
Lembre-se, você precisará garantir que seu código não esteja finalizado. Comparar
a <- 1 + 2
+ 3
com
a <- 1 + 2 +
3
Portanto, ao espalhar o código por várias linhas, você deve certificar-se de que R saiba que algo está por vir:
- deixando um suporte aberto, ou
- terminando a linha com um operador
Quando estamos falando de strings, isso ainda funciona, mas você precisa ter um pouco de cuidado. Você pode abrir as aspas e R continuará lendo até fechá-lo. Mas todos os caracteres, incluindo a nova linha, serão vistos como parte da string:
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.
Essa é a razão pela qual, neste caso, seu código não funcionou: um caminho não pode conter um caractere de nova linha ( \n
). É também por isso que é melhor usar a solução paste()
ou paste0()
Dirk proposto.