迭代拆分数据框与逐步生成多列矩阵实现方法咨询
R语言迭代提取矩阵前k列的实现方案
- 前提说明:以下实现基于你用MASS包生成的m列N行母矩阵,以20列10000行的矩阵为例,最终可得到19个符合要求的子矩阵。
- 第一步:生成示例母矩阵(可替换为你自己生成的实际矩阵)
library(MASS) # 此处用mvrnorm生成符合多变量正态分布的相关数据作为示例母矩阵 母矩阵 <- mvrnorm(n = 10000, mu = rep(0, 20), Sigma = diag(20))
- 方法1:将子矩阵存入列表(推荐,便于后续批量处理,不会污染全局环境)
# 初始化空列表存储所有子矩阵 sub_mat_list <- list() # 迭代提取前2列到前20列,共19个矩阵 for (k in 2:20) { sub_mat_list[[k-1]] <- 母矩阵[, 1:k] } # 调用规则:前2列对应sub_mat_list[[1]],前3列对应sub_mat_list[[2]],依此类推
- 方法2:生成独立命名的子矩阵变量
# 循环生成命名格式为mat_列数的独立变量 for (k in 2:20) { assign(paste0("mat_", k), 母矩阵[, 1:k]) } # 调用规则:前2列直接调用mat_2,前3列直接调用mat_3,依此类推
- 通用适配说明:如果你的母矩阵列数不是固定20,将循环范围的20替换为你的实际列数
m即可,最终会自动生成m-1个符合要求的子矩阵。
内容的提问来源于stack exchange,提问作者Aziz Ghazi
相关产品推荐
相关产品推荐

