2017-02-02 4 views
1

私はreadline()関数が変数に使用されている単語を文字列に変換するのではなく、私はこれを行う方法がありますか?readline()は、プロンプトで変数に保存された文字列を使用する - R

例えば、私は以下の変数と希望プロンプトを持っていると言う。このことから

> SpringC = c("Red", "Orange", "Yellow", "Green") 
> WinterC = c("Blue", "White", "Purple", "Grey") 
> x <- readline("Enter Season Color: ") 

これが起こるならば、私はそれが欲しいのです。むしろ、実際に何が起こるかよりも

Enter Season Color: WinterC 
> x <- as.character(unlist(strsplit(x, ","))) 

> x 
"Blue" "White" "Purple" "Grey" 

Enter Season Color: WinterC 
> x <- as.character(unlist(strsplit(x, ","))) 

> x 
"WinterC" 

答えて

1

これは、ユーザー定義関数で行うことができます。このような何か:

#define the function 
readline_2 <- function() { 

    x <- readline("Enter Season Color: ") 
    eval(parse(text = x)) 

} 

用途:

> b <- readline_2() 
Enter Season Color: WinterC 
> b 
[1] "Blue" "White" "Purple" "Grey" 
+0

素晴らしい!どうもありがとうございます! – albeit2

+0

あなたは非常に歓迎しています。 'eval(parse ...')のような単純な問題については、うまく動作しますが、もっと複雑なものについては、MrFlicksのアイデアはテキスト解析に依存しないので良いと思います。 ')です。 – LyzandeR

0

あなたがそうでなければあなたとget()を使用することができ、リスト内の関連する値ではなく、別のvaraibles

options <- list(
    SpringC = c("Red", "Orange", "Yellow", "Green"), 
    WinterC = c("Blue", "White", "Purple", "Grey") 
) 
x <- readline("Enter Season Color: ") 
x <- options[[x]] 

を保存した場合これが容易になるだろう取得する変数の名前の文字列値ですが、以前のソリューションを強くお勧めします。

+0

私はこの方法を試しても色が出ないので、" options [[1]] "や" x < - options [[1]] " – albeit2

関連する問題