是否可以在[R]中自动生成变量?

时间:2013-05-23 09:37:01

标签: r

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

1 个答案:

答案 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代替。但是你可以将任何你喜欢的东西放在一个列表中,让函数返回该列表(变量不需要是同一类型或类)。