【问题标题】:How to read a vector as input user in R如何在 R 中读取向量作为输入用户
【发布时间】:2017-12-01 13:06:42
【问题描述】:

我是使用 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

有人可以帮我解决这个问题吗?我应该如何编写序列?谢谢。

【问题讨论】:

    标签: r vector input readline


    【解决方案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"
    

    【讨论】:

    • 这正是我所需要的!感谢您的帮助。
    • 太好了,很高兴能帮助@Víctor
    猜你喜欢
    • 2016-02-09
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多