同じ行数の行列をいくつか保持するリストがあります(4)。ここで、log2(row / something)のような関数を行1と4に適用し、log2(row / something else)のような関数を行2と3に適用したいと思います。
コード内:
# Create list with 2 matrices with 4 rows
l<-list(a=matrix(1:16,nrow=4),b=matrix(17:32,nrow=4))
# Now I thought it might be possible to
nl <- lapply(l, function(x){
log2(x[c(1,4),]/14)
log2(x[2:3,]/23)
})
ただし、その結果、の最後の関数のみlapply
が実行されます。また、私はそれが可能かもしれないと思いました:
nl <- l
lapply(nl, function(x) x[c(1,4),]) <- lapply(l, function(x) log2(x[c(1,4),]/14))
lapply(nl, function(x) x[2:3,]) <- lapply(l, function(x) log2(x[2:3,]/23))
しかし、Rはその創造的な解決策を本当に好きではありません。