这是我的原始向量(长度可以改变)
c("e1","e2","e3","e4","e5","e6","e7","e8","e9","e10")
我想复制每个元素(保持顺序)并将“a”属性第一次出现,将“b”属性第二次出现,以获得:
c("e1a","e1b","e2a","e2b","e3a","e3b","e4a","e4b","e5a","e5b","e6a","e6b","e7","e7b","e8a","e8b","e9a","e9b","e10a","e10b")
我怎么能在R中用简洁的方式做到这一点?
你可以用 rep(each = 2) 得到复制品然后使用 paste0 添加后缀字母如下。
rep(each = 2)
paste0
这是一个很好的向量回收的例子; 粘贴0 将使用的元素 c("a", "b") 直到长向量的长度自动耗尽。因此,您可以使用任何长度的原始 vec . 许多base和package R函数也会做类似的事情。
粘贴0
c("a", "b")
vec
vec <- c("e1","e2","e3","e4","e5","e6","e7","e8","e9","e10") paste0(rep(vec, each = 2), c("a", "b")) #> [1] "e1a" "e1b" "e2a" "e2b" "e3a" "e3b" "e4a" "e4b" "e5a" "e5b" #> [11] "e6a" "e6b" "e7a" "e7b" "e8a" "e8b" "e9a" "e9b" "e10a" "e10b"
于2018-08-07由 reprex package (第0.2.0版)。