2013-06-05 59 views
3

我想在運行時在R代碼中獲取對整數變量的輸入。我主要用C編碼,想知道R中是否有像scanf這樣的函數可以用來讀取用戶的輸入?在運行時在運行時從用戶獲取整數輸入R

+1

你試過'readline'嗎? –

+0

是的,我試圖讀取線 其實,我想要讀取的整數變量控制某個for循環在我的代碼中運行的次數。但使用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