在R中的每个第n个元素元素之后添加值

关于如何提取向量的每个第n个元素有很多问题,但我找不到如何在向量的每个第n个元素之后轻松添加值.有没有一种简单的方法可以在向量中的每个第n个元素之后添加某个值?

例如,假设我们有两个向量:

v1 <- paste0(letters[1:3], rep(1:5, each = 3))
> v1
[1] "a1" "b1" "c1" "a2" "b2" "c2" "a3" "b3" "c3" "a4" "b4" "c4" "a5" "b5" "c5"

v2 <- paste0("header", seq(1:5))
> v2
[1] "header1" "header2" "header3" "header4" "header5"

现在我想在v1的每个第三个元素之后添加v2的元素,从第一个元素开始.结果应如下所示:

 [1] "header1" "a1" "b1" "c1" "header2" "a2" "b2" "c2" "header3" "a3" "b3" "c3" "header4" "a4" "b4" "c4" "header5" "a5" "b5" "c5"
最佳答案
您可以将长向量转换为具有适当尺寸的矩阵;将标题贴在上面;然后使用c()将矩阵展平回矢量.

构造示例:

v1 <- paste0(letters[1:3], rep(1:5, each = 3))
v2 <- paste0("header", seq(1:5))

制作矩阵并附上标题:

r <- rbind(v2,matrix(v1,ncol=length(v2)))
## "header1" "header2" "header3" "header4" "header5"
##    "a1"      "a2"      "a3"      "a4"      "a5"     
##    "b1"      "b2"      "b3"      "b4"      "b5"     
##    "c1"      "c2"      "c3"      "c4"      "c5"     

现在压平它:

c(r)

转载注明原文:在R中的每个第n个元素元素之后添加值 - 代码日志