R语言单列表分段应用函数生成矩阵列表的实现方法咨询
R语言单列表分段生成两两运算矩阵的实现方案
核心实现代码
# 1. 定义输入列表与分组规则 input_lst <- list(1,2,3,4,5,6) group_size <- 3 split_lst <- split(input_lst, ceiling(seq_along(input_lst) / group_size)) # 2. 遍历分组生成对应矩阵 res <- lapply(split_lst, function(grp) { grp_vec <- unlist(grp) # 计算两两元素的均值,可替换为任意自定义二元函数 outer(grp_vec, grp_vec, function(a, b) (a + b)/2) })
结果验证
运行上述代码后输出的res即为要求的矩阵列表,打印结果如下:
> res $`1` [,1] [,2] [,3] [1,] 1.0 1.5 2.0 [2,] 1.5 2.0 2.5 [3,] 2.0 2.5 3.0 $`2` [,1] [,2] [,3] [1,] 4.0 4.5 5.0 [2,] 4.5 5.0 5.5 [3,] 5.0 5.5 6.0
可调参数说明
- 修改
group_size的取值即可调整每组的元素个数,适配不同分段需求 - 将
outer中的function(a, b) (a + b)/2替换为其他二元运算函数,即可实现不同的两两计算逻辑
内容的提问来源于stack exchange,提问作者John Huang
相关产品推荐
相关产品推荐

