如何在R中读取矢量作为输入用户

时间:2017-12-01 13:06:42

标签: r vector input readline

我使用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 个答案:

答案 0 :(得分:1)

您可以使用(in)着名的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"