Bah, i commenti sono troppo piccoli. Ad ogni modo, @Dirk ha ragione.
Non è necessario dire a R che il codice inizia alla riga successiva. È più intelligente di Python ;-) e continuerà a leggere la riga successiva ogni volta che considera l'affermazione come "non finita". In realtà, nel tuo caso è andato anche alla riga successiva, ma R prende il ritorno come personaggio quando è posizionato tra "".
Intendiamoci, dovrai assicurarti che il tuo codice non sia finito. Confrontare
a <- 1 + 2
+ 3
con
a <- 1 + 2 +
3
Quindi, quando si distribuisce il codice su più righe, è necessario assicurarsi che R sappia che sta arrivando qualcosa:
- lasciando aperta una parentesi, oppure
- termina la linea con un operatore
Quando parliamo di stringhe, funziona ancora, ma devi stare un po 'attento. È possibile aprire le virgolette e R continuerà a leggere fino a quando non lo si chiude. Ma ogni personaggio, inclusa la nuova riga, verrà visto come parte della stringa:
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.
Questo è il motivo per cui in questo caso il tuo codice non ha funzionato: un percorso non può contenere un carattere di nuova riga ( \n
). Questo è anche il motivo per cui è meglio utilizzare la soluzione proposta paste()
o paste0()
proposta da Dirk.