2017-02-02 7 views
1

readline() 함수가 변수에 사용 된 단어를 문자열로 변환하지 않고 변수에 저장된 문자열을 사용하고 싶습니다. 내가 할 수있는 방법이 있니?readline()은 프롬프트에서 변수에 저장된 문자열을 사용합니다. - R

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

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

오히려 실제로 일어나는 것보다 : 일어날 것이 경우 내가하고 싶은이에서

> 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 
"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 아이디어가 텍스트 파싱에 의존하지 않기 때문에 더 낫다고 생각한다. 'is). – LyzandeR

0

당신이 그렇지 않으면 당신이 get()를 사용할 수있는 별도의 한다거나 할

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