Dear R experts,

since more or less half a year I am using R.

In many of my computations I construct huge matrices. Often I do so using
'cbind' on named lists:

do.call( 'cbind',
  list(
    "Column_A"=list("Row_one"=1.0, "Row_two"=2.0, "Row_three"=3.0),
    "Column_B"=list("Row_one"=4.0, "Row_two"=5.0, "Row_three"=6.0)
  )
)

# Returns:

          Column_A Column_B
Row_one   1        4
Row_two   2        5
Row_three 3        6

In some cases I even construct matrices with lists as cell content:

do.call( 'cbind',
  list(
    "Column_A"=list("Row_one"=list(1.0, 2.0), "Row_two"=list(2.0, 3.0),
"Row_three"=list(3.0, 4.0)),
    "Column_B"=list("Row_one"=list(4.0, 5.0), "Row_two"=list(5.0, 6.0),
"Row_three"=list(6.0, 7.0))
  )
)

# Returns:
          Column_A Column_B
Row_one   List,2   List,2
Row_two   List,2   List,2
Row_three List,2   List,2

Interestingly I seem not to be able to initialize a 3*2 matrix and
subsequently fill its cells with lists in order to produce the latter
example:

m <- matrix( nrow=3, ncol=2,
  dimnames=list(
    c("Row_one", "Row_two", "Row_three"),
    c("Column_A", "Column_B")
  )
)
# Returns:
          Column_A Column_B
Row_one         NA       NA
Row_two         NA       NA
Row_three       NA       NA

# The following expressions produce the same error:
m[ "Row_one", "Column_A" ]   <- list(1.0, 2.0)
m[[ "Row_one", "Column_A" ]] <- list(1.0, 2.0)
m[ 1,1 ]   <- list(1.0, 2.0)
m[[ 1,1 ]] <- list(1.0, 2.0)

# Error returned by each of the above expressions:
*number of items to replace is not a multiple of replacement length*

*So, now my questions:*
*1)* What am I doing wrong? How to get the above to work?

*2)* Or am I misusing matrices in R? Is it just by coincidence ( bug ) that
my 'cbind' or 'rbind' calls can generate matrices with lists as cell
content, while I seem not to be able to do so by direct assignment (as in
above example expressions)?

Any ideas, comments and help will be much appreciated!
Kind regards!
Josef

	[[alternative HTML version deleted]]

