在R中是否可以说 - 我想要从位置 i
到向量/矩阵的末尾的所有索引?假设我想要从第3列开始的子矩阵 . 我目前只知道这种方式:
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)
吗?是不是有什么优雅的方式怎么说"from the 3rd column onwards"?像 A[,3:]
这样的东西? (或 A[,3:...]
)?
3 回答
有时候更容易告诉R你想要什么 . 换句话说,使用否定索引从矩阵中排除列:
以下两种方法可以产生相同的结果:
结果:
但要回答您提出的问题:使用
ncol
查找列数 . (同样有nrow
来查找行数 . )对于行(不是根据您的示例的列),可以使用
head()
和tail()
.几乎是一样的
(打印的rownames / indices是不同的) .
那些也适用于矢量和数据帧:
对于列版本,您可以调整
tail()
,但它有点棘手 . 我想知道NROW()
和NCOL()
在这里是否有用,而不是dim()
?:或者翻转它的头部,而不是向R询问东西,要求它放弃东西 . 这是一个封装它的函数:
您可以使用以下说明: