基本上,我正在尝试使用m矩阵编写一个与任何 n一起使用的函数,并且需要将其设置为使得它给出m个不同的矩阵作为结果。 R中是否有用于在函数中创建变量的功能?
答案 0 :(得分: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
代替。但是你可以将任何你喜欢的东西放在一个列表中,让函数返回该列表(变量不需要是同一类型或类)。