基于另一个向量扩展向量

时间:2015-11-11 04:04:35

标签: r vector

假设我有这些载体:

g_number=c(3,2,4)
g_names=c("b", "c", "d")  

我想基于g_number和g_names创建以下向量:

vnames=c("b.1", "b.2", "b.3", "c.1", "c.2", "d.1", "d.2", "d.3", "d.4") 

我试过了:

rep(g_names, g_number)

但这些并不能完全符合我的要求

3 个答案:

答案 0 :(得分:3)

我会选择@ akrun的建议,但你也可以尝试这样的事情:

make.unique(c(g_names, rep(g_names, g_number)))[-seq_along(g_names)]
# [1] "b.1" "b.2" "b.3" "c.1" "c.2" "d.1" "d.2" "d.3" "d.4"

基本想法是对make.unique的结果使用rep。但是,由于make.unique的第一个值为裸(没有数字),我们将“g_names”值添加到rep创建的向量中,然后删除裸值。

答案 1 :(得分:2)

我们可以试试

 sprintf('%s.%d',rep(g_names, g_number),sequence(g_number))

答案 2 :(得分:1)

最后我可以这样做:

 paste(rep(g_names, g_number), sequence(g_number), sep=".")