2013-06-05 2 views
3

Я хочу получить ввод целочисленной переменной в моем R-коде во время выполнения. Я в основном закодирован на C и хочу знать, есть ли какая-то функция, например scanf в R, которая может использоваться для чтения ввода от пользователя?Получение целочисленного ввода от пользователя во время выполнения в R

+1

Вы пробовали 'readline'? –

+0

Да, я попробовал readline На самом деле целочисленная переменная, которую я хочу читать, контролирует количество раз, когда определенный цикл цикла работает в моем коде. Но используя readline, я получил ошибку, заявив, что переменная (в моем случае n) - NaN – user2454475

+6

'readline' возвращает символьную строку, поэтому, если вы хотите номер, вам придется преобразовать его через' as.numeric' или 'as.integer'. –

ответ

0

Как сказано выше, вы можете использовать readlines(), а затем преобразовать в целое число с as.integer().

Я также предлагаю альтернативу, которая является функцией scan(). Преимуществами scan() являются то, что в качестве класса по умолчанию он имеет numeric, поэтому нет необходимости преобразовывать его в целое число. Также по умолчанию он позволяет вводить неограниченные значения за раз, а затем возвращать их в один вектор. Это можно свести к одному значению, используя опцию nmax=1.

> a=as.integer(readline()) 
123 
> a 
[1] 123 


> b=scan() 
1: 123 
2: 456 
3: 
Read 2 items 
> b 
[1] 123 456 


> c=scan(,nmax=1) 
1: 123 
Read 1 item 
> c 
[1] 123 
Смежные вопросы