我有一个矩阵,每行有2行和5000个变量。我需要以50的间隔分割列,这样我就得到100个单独的矩阵实体,每个实体有2行和50个变量。然后我需要能够创建一个可以遍历100个实体中的每个实体的函数...我希望对代码提出建议,但我还需要知道是否应该将拆分实体存储在变量中(或以某种方式甚至分开变量)以迭代它们中的每一个?或者将它们拆分然后在原始矩阵上执行函数就足以得到每个矩阵的输出结果?
答案 0 :(得分:0)
我们根据该变量创建一个分组变量(' i2')和split
列。输出将是list
(' lst')。我们将' m1'基于每个list
元素中的列索引。我们可以更改“{1}}的”{1}}然后使用names
在全局环境中创建多个对象(不建议这样做,因为大多数操作都可以在list
内完成)。
list2env
i1 <- seq_len(ncol(m1))
i2 <- (i1-1)%/%50 +1
lst <- lapply(split(i1, i2), function(i) m1[,i])
names(lst) <- paste0('newm', seq_along(lst))
list2env(lst, envir=.GlobalEnv)
newm1