Ответ 1
Попробуйте следующее:
cat("What your name? ")
x <- readLines(file("stdin"),1)
print(x)
Надеемся, что какой-то вариант этого работает для вас.
Я пытаюсь написать интерактивный 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 и может принимать интерактивный ввод от пользователя?
Попробуйте следующее:
cat("What your name? ")
x <- readLines(file("stdin"),1)
print(x)
Надеемся, что какой-то вариант этого работает для вас.
Что работало для меня в Windows с RStudio 0.98.945 и R версии 3.1.1:
cat("What your name? ")
x <- readLines(con=stdin(),1)
print(x)