Is it possible in R to say - I want all indices from position i
to the end of vector/matrix? Say I want a submatrix from 3rd column onwards. I currently only know this way:
A = matrix(rep(1:8, each = 5), nrow = 5) # just generate some example matrix... A[,3:ncol(A)] # get submatrix from 3rd column onwards
But do I really need to write ncol(A)
? Isn't there any elegant way how to say "from the 3rd column onwards"? Something like A[,3:]
? (or A[,3:...]
)?
Sometimes it's easier to tell R what you don't want. In other words, exclude columns from the matrix using negative indexing:
Here are two alternative ways that both produce the same results:
A[, -(1:2)] A[, -seq_len(2)]
Results:
[,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
But to answer your question as asked: Use ncol
to find the number of columns. (Similarly there is nrow
to find the number of rows.)
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With