Подтвердить что ты не робот

Как передать Rscript -e многострочную строку?

Есть ли способ предоставить код Rscript -e в нескольких строках?

Это возможно в ваниле R

R --vanilla <<code
a <- "hello\n"
cat(a)
code

Но используя Rscript, я получаю две разные вещи в зависимости от версии R.

# R 3.0.2 gives two ignores
Rscript -e '
quote> a <- 3+3
quote> cat(a, "\n")
quote> '
# ARGUMENT 'cat(a,~+~"' __ignored__
# ARGUMENT '")' __ignored__

Rscript -e 'a <- 3+3;cat(a, "\n")'
# ARGUMENT '")' __ignored__

# R 2.15.3 gives an ignore for the multiline, but it works with semicolons
Rscript -e '
quote> a <- 3+3
quote> cat(a, "\n")
quote> '
# ARGUMENT 'cat(a,~+~"\n")' __ignored__

Rscript -e 'a <- 3+3;cat(a, "\n")'
6

Я явно использую неправильный синтаксис. Каков правильный способ сделать это?

4b9b3361

Ответ 1

Обновление: Я думаю, что проблема заключалась в расположении и цитатах. Это работало (в окнах):

Rscript -e "a <- 3+3; cat(a,'\n')"
6

На Mac вам нужно избежать escape-символа:

Rscript -e 'a <- 3+3; cat(a,"\\n")'

Вы также можете поместить каждое выражение отдельно.

Rscript -e "a <- 3+3" -e "cat(a)"