Почему R требует возврата внутрь {} при использовании внутри оператора with? - PullRequest
0 голосов
/ 27 августа 2018

Я не смог найти причину, по которой приведенный ниже код не работал бы.

with(df, {a<-plot(x,y) b<-lines(x1,x2)})

Затем я нашел несколько примеров, в которых использовался следующий синтаксис.

with(df, {a<-plot(x,y) 
          b<-lines(x1,x2)})

Когда я использовал второй синтаксис, я не получил никаких ошибок. Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Если вы хотите, чтобы две команды в одной строке, разделяли их точкой с запятой

with(df, {a<-plot(x,y); b<-lines(x1,x2)})

Это не уникально для with или {}. Вы не можете просто сделать

a <-5   b<-3   a+b   # syntax error if on the same line.

в R и запустить его. Вам нужны либо точки с запятой, либо символы новой строки между отдельными операторами, которые вы хотите, чтобы R выполнял.

0 голосов
/ 27 августа 2018

С Введение в R раздел 1.8

Команды отделяются точкой с запятой (‘;’) или символом новой строки. Элементарные команды могут быть сгруппированы в одно соединение выражение в фигурных скобках (‘{’ и ‘}’).

Ниже приведены коды, эквивалентные

with(df1, {a<-plot(x,y) ; b<-lines(x1,x2)}) 

with(df1, {a<-plot(x,y)
           b<-lines(x1,x2)})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...