Что лучший способ состоит в том, чтобы использовать сценарии R на командной строке (терминал)?

Вы ищете Дедукти , логическую структуру, основанную на λΠ-исчислении по модулю, в которой можно выразить многие теории и логики. В частности, CoqInE (Coq In dEdukti) производит доказательства Дедукти из доказательств Coq.

112
задан M-- 7 June 2017 в 14:48
поделиться

6 ответов

Содержимое script.r :

#!/usr/bin/env Rscript

args = commandArgs(trailingOnly = TRUE)
message(sprintf("Hello %s", args[1L]))

Первая строка - это строка shebang . Лучше всего использовать / usr / bin / env Rscript вместо того, чтобы жестко указывать путь к вашей установке R. В противном случае вы рискуете сломать ваш сценарий на других компьютерах.

Затем сделайте его исполняемым (в командной строке):

chmod +x script.r

Вызов из командной строки:

./script.r world
# Hello world
126
ответ дан 24 November 2019 в 02:52
поделиться

Попробуйте Литтлер . littler предоставляет возможность использования hash-bang (т. Е. Сценария, начинающегося с #! / Some / path) для GNU R, а также простое использование командной строки и конвейеров.

16
ответ дан saffsd 24 November 2019 в 02:52
поделиться

Следующее работает для меня, используя MSYS bash на Windows - у меня нет R на моей Linux-системе, поэтому могу ' попробуй там. Вам нужны два файла - первый с именем runr выполняет R с параметром файла

# this is runr
# following is path to R on my Windows machine
# plus any R params you need
c:/r/bin/r --file=$1

Вам необходимо сделать этот исполняемый файл с помощью chmod + x runr .

Затем в вашем скрипте file:

#!runr
# some R commands
x = 1
x

Обратите внимание на #! В строке runr может потребоваться указать полный путь к runr, в зависимости от того, как вы используете команду, как установлена ​​переменная PATH и т. д.

Не красиво, но, похоже, это работает!

-1
ответ дан 24 November 2019 в 02:52
поделиться

Если программе, которую вы используете для выполнения вашего скрипта, нужны параметры, вы можете поместить их в конец # ! строка:

#!/usr/bin/R --random --switches --f

Не зная R, я не могу проверить должным образом, но, похоже, это работает:

axa@artemis:~$ cat r.test
#!/usr/bin/R -q -f
error
axa@artemis:~$ ./r.test
> #!/usr/bin/R -q -f
> error
Error: object "error" not found
Execution halted
axa@artemis:~$
2
ответ дан Andrew Aylett 24 November 2019 в 02:52
поделиться

Возможно, вы захотите использовать модуль pypy rpy2. Однако «правильный» способ сделать это с помощью R CMD BATCH. Вы можете изменить это для записи в STDOUT, но по умолчанию это запись в файл .Rout. Смотрите пример ниже:

[ramanujan:~]$cat foo.R
print(rnorm(10))
[ramanujan:~]$R CMD BATCH foo.R
[ramanujan:~]$cat foo.Rout

R version 2.7.2 (2008-08-25)
Copyright (C) 2008 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

[Previously saved workspace restored]


 ~/.Rprofile loaded.
Welcome at  Fri Apr 17 13:33:17 2009
> print(rnorm(10))
 [1]  1.5891276  1.1219071 -0.6110963  0.1579430 -0.3104579  1.0072677 -0.1303165  0.6998849  1.9918643 -1.2390156
>

Goodbye at  Fri Apr 17 13:33:17 2009
> proc.time()
   user  system elapsed
  0.614   0.050   0.721

Примечание: вы захотите попробовать --vanilla и другие опции, чтобы удалить все стартовые ошибки.

0
ответ дан 24 November 2019 в 02:52
поделиться

#! / Path / to / R не будет работать, поскольку R сам по себе является сценарием, поэтому execve несчастен.

Я использую R --slave -f script

9
ответ дан 24 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: