假设我有这些载体:
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)
但这些并不能完全符合我的要求
答案 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=".")