2017-12-01 14 views
2

저는 R을 사용하여 새로운 사람이고 일하고있는 동안 자신을 위해 해결할 수 없었던 질문이있었습니다. 콘솔에 스크립트 나 시퀀스를 작성하여 사용자가 벡터를 입력으로 사용할 수 있도록하고 싶습니다. 그러나 어떤 벡터도 입력 할 수 없습니다. 특히 벡터를 입력해야합니다 : j<-c(1:20,4,30:35). 내가 사용하려고 한 경우입력 사용자로 벡터를 읽는 방법

그러나 :

limStr <- readline("Enter the vector you want:"); 
Enter the vector you want: j<-c(1:20,4,30:35) 
lim <- as.numeric(unlist(strsplit(limStr, ","))); 

을 그리고 lim= NA 4 NA

을 가지고 는

사람이 문제 좀 도와 주 시겠어요? 어떻게 시퀀스를 작성해야합니까? 감사.

답변

1

당신은 (에) 유명한 eval(parse(text = ...) 구문을 사용할 수 있습니다

limStr <- readline("Enter the vector you want:"); 
Enter the vector you want: c(1:20, 4, 30:35);  
lim <- eval(parse(text = limStr)); 
lim; 
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4 30 31 32 33 
#[26] 34 35 

을 다시 생각, 난 당신이 원하는 것을 완전히 확실하지 않다. 쉼표로 구분 된 용어를 추출하는 경우

unlist(strsplit(gsub("(c\\(|\\))", "", limStr), ", ")); 
#[1] "1:20" "4"  "30:35" 
+0

이것은 정확히 내가 필요한 것입니다! 당신의 도움을 주셔서 감사합니다. –

+0

@ Víctor를 도와 주셔서 감사합니다. –