首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >直到向量/矩阵末尾的优雅索引

直到向量/矩阵末尾的优雅索引
EN

Stack Overflow用户
提问于 2011-09-21 21:33:22
回答 2查看 105.8K关注 0票数 83

在R中是否可以说-我想要从位置i到向量/矩阵末尾的所有索引?假设我想要一个从第三列开始的子矩阵。我目前只知道这种方式:

代码语言:javascript
复制
A = matrix(rep(1:8, each = 5), nrow = 5) # just generate some example matrix...

A[,3:ncol(A)] # get submatrix from 3rd column onwards

但是我真的需要写ncol(A)吗?有没有什么优雅的方式来说“从第3列开始”?像A[,3:]这样的?(或A[,3:...])?

EN

回答 2

Stack Overflow用户

发布于 2011-09-21 22:01:32

对于行(而不是您示例中的列),则可以使用head()tail()

代码语言:javascript
复制
A <- matrix(rep(1:8, each = 5), nrow = 5)
tail(A, 3)

几乎与

代码语言:javascript
复制
A[3:dim(A)[1],]

(打印的行名/索引是不同的)。

这些方法也适用于矢量和数据帧:

代码语言:javascript
复制
> tail(1:10, 4)
[1]  7  8  9 10
> tail(data.frame(A = 1:5, B = 1:5), 3)
  A B
3 3 3
4 4 4
5 5 5

对于列版本,您可以调整tail(),但它有点棘手。我想知道在这里NROW()NCOL()是否比dim()更有用?

代码语言:javascript
复制
> A[, 3:NCOL(A)]
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    3    4    5    6    7    8
[2,]    3    4    5    6    7    8
[3,]    3    4    5    6    7    8
[4,]    3    4    5    6    7    8
[5,]    3    4    5    6    7    8

或者将其颠倒过来,而不是向R索要东西,而是让它丢弃东西。下面是一个封装这个函数的函数:

代码语言:javascript
复制
give <- function(x, i, dimen = 1L) {
    ind <- seq_len(i-1)
    if(isTRUE(all.equal(dimen, 1L))) { ## rows
        out <- x[-ind, ]
    } else if(isTRUE(all.equal(dimen, 2L))) { ## cols
        out <- x[, -ind]
    } else {
        stop("Only for 2d objects")
    }
    out
}

> give(A, 3)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    1    2    3    4    5    6    7    8
[2,]    1    2    3    4    5    6    7    8
[3,]    1    2    3    4    5    6    7    8
> give(A, 3, dimen = 2)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    3    4    5    6    7    8
[2,]    3    4    5    6    7    8
[3,]    3    4    5    6    7    8
[4,]    3    4    5    6    7    8
[5,]    3    4    5    6    7    8
票数 18
EN

Stack Overflow用户

发布于 2018-06-15 12:06:38

您可以使用以下指令:

代码语言:javascript
复制
A[, 3:length(A[, 1])]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7500644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档