Как включить интерактивный ввод в script для запуска из командной строки

Я пытаюсь написать интерактивный R script. Например:

try.R:

print("Entr some numbers. >",quote=F)
a = scan(what=double(0))
print a
q()

Теперь, если я запустил его в командной строке как

$ R --no-save < try.R

Он пытается получить stdin из try.R, указав следующую ошибку:

> print("Entr some numbers. >",quote=F)
[1] Entr some numbers. >
> a = scan(what=double(0))
1: print a
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  scan() expected 'a real', got 'print'
Execution halted

Я попробовал несколько других методов, но все они дают ошибки. Например:

$ R CMD BATCH try.R 
$ Rscript try.R 

Итак, как мне написать R script, который работает из командной строки * nix shell и может принимать интерактивный ввод от пользователя?

Ответы

Ответ 1

Попробуйте следующее:

cat("What your name? ")
x <- readLines(file("stdin"),1)
print(x)

Надеемся, что какой-то вариант этого работает для вас.

Ответ 2

Что работало для меня в Windows с RStudio 0.98.945 и R версии 3.1.1:

    cat("What your name? ")
    x <- readLines(con=stdin(),1)
    print(x)