【问题标题】:Is there a simple way in R to access negative elements' position in a vector?R中是否有一种简单的方法可以访问向量中负元素的位置?
【发布时间】:2018-09-18 14:14:20
【问题描述】:

假设我有以下向量:

v = c(1:8)

我想按顺序访问元素 7,8,1,2,3。也就是说,像

v[-2:3]

会很棒。有没有一种简单的方法可以访问这些负面位置,即从 n before last 到 m 的元素?

【问题讨论】:

  • 我的意思是向量中的“负位置”,即最后一个是-1,最后一个是-2,依此类推
  • 您可以使用tailheadtail(v,2) 获取最后两个数字,head(v,3) 获取前三个数字。
  • 为了完整性,c(tail(v, 2), head(v, 3))
  • @JasonAizkalns:感谢您的建议。我也有同样的想法!

标签: r vector indexing


【解决方案1】:

您可以使用取模运算符(即余数):

v[-2:3 %% (length(v)+1)]

输出:

[1] 7 8 1 2 3

【讨论】:

    【解决方案2】:

    使用tailhead(与重复的不同):

    c(tail(v,2),head(v,3))
    

    或者我们可以使用union 来组合答案:

    union(tail(v,2),head(v,3))
    

    输出:

    [1] 7 8 1 2 3
    

    【讨论】:

      【解决方案3】:

      这里有另外两个使用负元素位置的选项: c(v[-6:-1], v[1:3])c(v[-c(1:6)], v[1:3])

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-25
        • 2019-09-07
        • 2012-07-08
        • 1970-01-01
        • 2011-03-12
        • 2021-12-26
        • 2021-05-28
        相关资源
        最近更新 更多