我使用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
有人可以帮我解决这个问题吗?我应该怎么写序列?谢谢。
答案 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"