在R

时间:2019-07-15 17:54:24

标签: r

我有一个称为myvec<- (c(141,143,139,139,140,141,138,140,142,138))的向量。 如何在每个,的n = 3个实例中插入Y?

我想要的结果是: 141,143,139Y139,140,141Y138,140,142

1 个答案:

答案 0 :(得分:4)

也许我们需要

gsub("([^,]+,[^,]+,[^,]+),", "\\1Y", paste(myvec, collapse=","))

要使其更具通用性,可以使用strrepsprintf

创建模式
createPattern <- function(n) {
   sprintf("(%s[^,]+),", strrep("[^,]+,", n-1))
 }

pat <- createPattern(3)
gsub(pat, "\\1Y", paste(myvec, collapse=","))