2016-06-16 5 views
2

Rはファイルの実行とソースの微妙な区別があります。 Sourceは、入力が有効なRコードであると仮定します。私はreadlines()経由でインタラクティブな入力を求める機能を持っています。私はファイルに所望の入力を記録したが、ファイルからの実行方法を理解することはできない。Rは対話型入力のためのファイルをソースしません

spacefun <- function() { 
    text <- readline("Input text: ") 
    print(text) 
} 

その関数を呼び出して、テキストを提供しtest.R別のファイル:

はここでは例として、対話形式でテキストを要求し、それをプリントアウトする小さな関数です。

spacefun() 
Test Line 

source()parse()空白の両方のスローエラー:

Error in source("~test.R", echo = TRUE) : 
    ~test.R:2:6: unexpected symbol 
1: spacefun() 
2: Test Line 

思考?

+0

'readline'は対話的な使用のためだけですが、なぜこのように動作する必要がありますか? – rawr

+0

私は、複雑なユーザー定義の構造を持つ特定のオブジェクトを作成するには、対話型入力が最適な方法であるパッケージに取り組んでいます。私は手でそれを簡単に実行することはできますが、それは明らかに再現性の点ではあまりありません。空白を渡すことができるのであれば、readLineの代替案もうまくいくと思います。 –

答えて

0

Make readline wait for input in R )が(入力と猫のために)(あなたがスクリプトモードを使用する場合、あなたはreadLinesを使用する必要があります

に答え出力のために、それは奇妙なデザインだと私は理由を知りません。

cat("a string please: "); 
a <- readLines("stdin",n=1); 
cat("You entered") 
str(a); 
cat("\n") 
関連する問題