Bah, ý kiến quá nhỏ. Dù sao, @Dirk rất đúng.
R không cần phải nói mã bắt đầu ở dòng tiếp theo. Nó thông minh hơn Python ;-) và sẽ tiếp tục đọc dòng tiếp theo bất cứ khi nào nó coi câu lệnh là "chưa kết thúc". Trên thực tế, trong trường hợp của bạn, nó cũng đã đi đến dòng tiếp theo, nhưng R lấy sự trở lại là một ký tự khi nó được đặt giữa "".
Nhắc bạn, bạn sẽ phải đảm bảo mã của bạn chưa kết thúc. Đối chiếu
a <- 1 + 2
+ 3
với
a <- 1 + 2 +
3
Vì vậy, khi trải rộng mã trên nhiều dòng, bạn phải chắc chắn rằng R biết điều gì đó sắp xảy ra, bằng cách:
- để một khung mở, hoặc
- kết thúc dòng với một toán tử
Khi chúng ta đang nói chuyện, điều này vẫn hoạt động nhưng bạn cần cẩn thận một chút. Bạn có thể mở dấu ngoặc kép và R sẽ đọc tiếp cho đến khi bạn đóng nó. Nhưng mọi ký tự, bao gồm cả dòng mới, sẽ được xem như là một phần của chuỗi:
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.
Đó là lý do tại sao trong trường hợp này, mã của bạn không hoạt động: một đường dẫn không thể chứa ký tự dòng mới ( \n
). Vì vậy, đó cũng là lý do tại sao bạn nên sử dụng giải pháp tốt hơn với paste()
hoặc paste0()
đề xuất Dirk.