首页 文章

R:从序列矢量中选择多个值

提问于
浏览
-3

在R中,我试图弄清楚如何从预定义的序列矢量中选择多个值(例如 indices = c(1:3, 4:6, 10:12, ...) ) . 换句话说,如果我想在"indices"中使用第3,第5和第7个条目的新向量,我应该使用什么语法来获取仅具有完整序列的向量,例如 c(10:12, ...)

2 回答

  • 0

    如果我理解正确,您需要 c(1:3, 4:6, 10:12, ...) 中的第3,第5和第7个条目,这意味着您需要从向量中提取特定的索引集 .

    当您执行 c(1:3, 4:6, ...) 之类的操作时,生成的矢量不是您想要的 . 相反,请使用 list(1:3, 4:6, ...) . 然后你可以这样做:

    indices <- list(1:3, 4:6, 10:12, 14:16, 18:20)
    
    x <- rnorm(100)
    
    x[c(indices[[3]], indices[[5]])]
    

    这相当于:

    x[c(10:12, 18:20)]
    

    这相当于:

    x[c(10, 11, 12, 18, 19, 20)]
    

    如果我误解了你的问题,请告诉我 .

  • 4

    您正在寻找的是如何分组数据 . 最常见的是使用方括号表示法:

    样本数据:

    my_vector <- c(100:120)
    my_vector
    # 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
    

    你想要取出的 Value 观:

    indices <- c(1:3, 4:6, 10:12)
    indices
    
    # 1  2  3  4  5  6 10 11 12
    

    使用括号表示法进行子集化

    my_vector[indices]
    # 100 101 102 103 104 105 109 110 111
    

    还有一个名为 subset 的函数也可以做到这一点 .

相关问题