如何在R语言中交替逐行合并两个单列矩阵?
解决R语言两个单列矩阵交替逐行合并的问题
给定两个单列矩阵:
test1 <- matrix(1:5, ncol=1) test2 <- matrix(6:10, ncol=1)
需要将它们交替逐行合并为单列矩阵,预期输出:
expected_output <- matrix(c(1,6,2,7,3,8,4,9,5,10),ncol=1)
方法一:向量索引重组
先将矩阵转为向量,通过构造交替索引提取元素,再转为矩阵:
# 转为向量 vec1 <- as.vector(test1) vec2 <- as.vector(test2) # 生成交替位置的索引 idx <- c(rbind(seq_along(vec1), seq_along(vec2))) # 提取元素并转为单列矩阵 result <- matrix(c(vec1, vec2)[idx], ncol=1)
方法二:列合并+转置(更简洁)
利用cbind按列合并两个矩阵,转置后再转为单列矩阵,一步到位:
result <- matrix(t(cbind(test1, test2)), ncol=1)
验证结果
可以用all.equal()确认结果与预期一致:
all.equal(result, expected_output) # 返回TRUE,说明结果正确
内容的提问来源于stack exchange,提问作者CoDa
相关产品推荐
相关产品推荐

