Вы ищете Дедукти , логическую структуру, основанную на λΠ-исчислении по модулю, в которой можно выразить многие теории и логики. В частности, CoqInE (Coq In dEdukti) производит доказательства Дедукти из доказательств Coq.
Содержимое 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
Попробуйте Литтлер . littler
предоставляет возможность использования hash-bang (т. Е. Сценария, начинающегося с #! / Some / path) для GNU R, а также простое использование командной строки и конвейеров.
Следующее работает для меня, используя 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 и т. д.
Не красиво, но, похоже, это работает!
Если программе, которую вы используете для выполнения вашего скрипта, нужны параметры, вы можете поместить их в конец # ! строка:
#!/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:~$
Возможно, вы захотите использовать модуль 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 и другие опции, чтобы удалить все стартовые ошибки.
#! / Path / to / R
не будет работать, поскольку R сам по себе является сценарием, поэтому execve
несчастен.
Я использую R --slave -f script