7

私はマトリックスを持っていてM、各リストにマトリックスの行名が含まれている3つのリストを作成したいのですMが、最初のリストの例では、m[, 1]$a = 1m[ ,1]$b = 2. 各列に対してRでこれを行うにはどうすればよいですか?

    m
      [,1] [,2] [,3]
  a    1    3    5
  b    2    4    6

私はこのコードを試しましたが、それは私の望みの結果ではありません

  > list(m[, 1])
  [[1]]
   a b 
   1 2
4

3 に答える 3

5

これにより、リストのリストが作成されます。

apply(M, 2, as.list)

また、マトリックスに列名がある場合、それらは最上位リストの名前としても使用されます。

M <- matrix(1:6, nrow = 2, dimnames = list(c("a", "b"), c("c1", "c2", "c3")))
apply(M, 2, as.list)
# $c1
# $c1$a
# [1] 1
#
# $c1$b
# [1] 2
#
#
# $c2
# $c2$a
# [1] 3
#
# $c2$b
# [1] 4
#
#
# $c3
# $c3$a
# [1] 5
#
# $c3$b
# [1] 6
于 2013-05-10T03:05:02.547 に答える
4

コマンドは次のとおりです。

list.m <- as.list(m[,1])
于 2013-05-10T03:04:14.717 に答える
2

これを試して:

# input matrix
m <- matrix(1:6, 2, dimnames = list(c("a", "b"), NULL))

# convert it to a list constructed such that L[, 1]$a gives 1
L <- as.list(m)
dim(L) <- dim(m)
dimnames(L) <- dimnames(m)

これで、次のようになりました。

> L[, 1]$a
[1] 1
于 2013-05-10T03:06:08.457 に答える