[R] A 'good' way to build a matrix from a sequence of integers?

arun smartpink111 at yahoo.com
Wed Oct 16 01:26:40 CEST 2013



Hi,

You could use:
 as.matrix(expand.grid(vec1x3,vec1x3))
#or
as.matrix(expand.grid(rep(list(vec1x3),2)))
#or
library(gtools)
permutations(3, 2, vec1x3, repeats.allowed=TRUE)

A.K.



On Tuesday, October 15, 2013 7:14 PM, Stock Beaver <stockbeaver at ymail.com> wrote:
# I understand that a good way to build a vector from a sequence of integers,
# is to use syntax like this:
myvec = c(1:99)

# Here is the 'short' version of my question:
# I want to understand a 'good' way to build a matrix from a sequence of integers.

# If that question is not clear, here is a longer version:

# Here is what I did for a 1D-matrix:

# I pick the sequence 1:3
# I build a vector:
vec1x3 = c(1:3)
vec1x3
# I transform it into a 1 x 3 matrix:
m1x3 = matrix(vec1x3, c(length(vec1x3),1))
m1x3
#      [,1]
# [1,]    1
# [2,]    2
# [3,]    3
# > 

# That was easy.

# Next I want to expand from a 1 x 3 matrix to a 2 x 9 matrix
# which contains all combinations of 1:3

# So the first 4 rows would look like this:
# 1 1
# 1 2
# 1 3 I call this a rowvec
# 2 1

# My first idea is write a loop like this:

for (i in 1:3) {
  for(j in 1:3) {
    rowvec = c(i,j)
    # Place rowvec in matrix
  }
}

# I'm curious if a skilled R-person would do it differently?
    [[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list