这是我的原始矢量(长度可以变化)
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中以一种简洁的方式做到这一点呢?
发布于 2018-08-07 22:23:55
您可以使用rep(each = 2)获取复制,然后使用paste0添加后缀字母如下所示。
这是向量回收的一个很好的例子;paste0将使用c("a", "b")元素,直到长向量的长度自动耗尽为止。因此,您可以使用原始vec的任意长度来完成此操作。许多基础和包R功能将做一些类似的事情。
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"由reprex封装创建于2018-08-07 (v0.2.0)。
https://stackoverflow.com/questions/51736196
复制相似问题