如何在 R 中读取向量作为输入用户
How to read a vector as input user in R
我是 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
有人可以帮我解决这个问题吗?我应该如何编写序列?谢谢。
您可以使用(著名的)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"
我是 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
有人可以帮我解决这个问题吗?我应该如何编写序列?谢谢。
您可以使用(著名的)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"