基本的に、 n x m の任意の行列で動作する関数を作成しようとしており、結果として m の異なる行列が得られるようにする必要があります。関数内で変数を作成するための R の機能はありますか?
1 に答える
3
以下に例を示します。
set.seed(42)
m <- matrix(rnorm(9),ncol=3)
# [,1] [,2] [,3]
# [1,] 1.3709584 0.6328626 1.51152200
# [2,] -0.5646982 0.4042683 -0.09465904
# [3,] 0.3631284 -0.1061245 2.01842371
fun <- function(mat) {
result <- list()
for (i in seq_len(nrow(mat))) {
result[[i]] <- mat[-i,]
}
result
}
mList <- fun(m)
mList[[1]]
# [,1] [,2] [,3]
# [1,] -0.5646982 0.4042683 -0.09465904
# [2,] 0.3631284 -0.1061245 2.01842371
ただし、この関数は教育的な例にすぎないことに注意してください。lapply
まさにこの結果が必要な場合は、おそらく代わりに使用します。しかし、好きなものをリストに入れて、関数がそのリストを返すようにすることができます (変数は同じ型またはクラスである必要はありません)。
于 2013-05-23T10:58:38.507 に答える