0

基本上,我正在尝试编写一个可与​​任何n x m 矩阵一起使用的函数,并且需要制作它以便它给出 m 个不同的矩阵作为结果。R中是否有用于在函数中创建变量的功能?

4

1 回答 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 回答