R语言如何实现矩阵每个值复制后紧邻对应原值排列
实现方法
你之前得到复制值集中在后面的结果,大概率是直接用了cbind(mat, mat)的拼接逻辑,只要调整列索引的取值顺序就能轻松实现需求,核心代码仅需1行:
# mat为你的原始测量矩阵 res_mat <- mat[, rep(seq_len(ncol(mat)), each = 2)]
示例验证
我们用你给出的示例矩阵测试:
# 构造原始示例矩阵 mat <- matrix( c(1.647, 1.125, 0.559, 1.614, 1.578, 0.377, 0.555, 0.395, 1.090, 0.896, 2.135, 1.184, 0.269, 2.022, -0.184, 0.614, 1.128, 1.036), nrow = 3, byrow = TRUE ) # 执行扩展 res_mat <- mat[, rep(seq_len(ncol(mat)), each = 2)] # 查看第一行结果 print(res_mat[1, ])
输出第一行结果为:1.647 1.647 1.125 1.125 0.559 0.559 1.614 1.614 1.578 1.578 0.377 0.377,和你要求的结构完全一致。
如果后续需要每个值重复更多次,只需修改each参数的取值即可。
内容的提问来源于stack exchange,提问作者gir emee
相关产品推荐
相关产品推荐

