Первоначально я думал, что точка с запятой ;
эквивалентна добавлению явной новой строки, например.
x <- 1; y <- 2
совпадает с
x <- 1
x <- 2
Конечно, R-документация, похоже, не делает различий в отношении синтаксически полных утверждений:
Обе точки с запятой и новые строки могут использоваться для разделения операторов. точка с запятой всегда указывает конец инструкции, в то время как новая строка может укажите конец заявления. Если текущее выражение не синтаксически завершенные новые строки просто игнорируются оценщиком.
Однако я обнаружил, что по крайней мере в Rstudio Server точка с запятой ведет себя по-разному к новой строке. Например:
> temp_a ; temp_b <- 1 ; temp_c <- 2
Error: object 'temp_a' not found
> exists("temp_b")
[1] FALSE
> exists("temp_c")
[1] FALSE
по сравнению с
> temp_a
Error: object 'temp_a' not found
> temp_b <- 1
> temp_c <- 2
>
> exists("temp_b")
[1] TRUE
> exists("temp_c")
[1] TRUE
Почему это происходит? Есть ли какие-либо другие ошибки, которые я должен искать?