27

2 つの行列 X と Y の行方向の相関を見つけるには、出力に X の行 1 と Y の行 1 の相関値が含まれている必要があります。したがって、合計で 10 個の値になります (10 行あるため)。

X <- matrix(rnorm(2000), nrow=10)
Y <- matrix(rnorm(2000), nrow=10)

sapply(1:10, function(row) cor(X[row,], Y[row,]))

さて、この関数を 2 つのリスト (それぞれ約 50 個のデータフレームを含む)にどのように適用すればよいでしょうか?

リスト A に $1、$2、$3 などのデータフレームがあり、リスト B に同様の数のデータフレーム $1、$2、$3 があるとします。そのため、リスト内の他のデータフレームに対して、関数をlistA$1,listB$1and ... などに適用する必要があります。listA$2,listB$2最終的に、比較 1 (listA$1およびlistB$1) の場合とその他の場合も同様に、10 個の値が得られます。

これは「lapply」を使用して行うことができますか?

4

1 に答える 1

44

を探しているようですmapply。次に例を示します。

listA <- list(matrix(rnorm(2000), nrow=10),
              matrix(rnorm(2000), nrow=10))
listB <- list(matrix(rnorm(2000), nrow=10),
              matrix(rnorm(2000), nrow=10))
mapply(function(X,Y) {
  sapply(1:10, function(row) cor(X[row,], Y[row,]))
  }, X=listA, Y=listB)
于 2013-09-25T10:52:05.340 に答える