【发布时间】:2021-08-08 17:51:13
【问题描述】:
如果我有一个字符串列表,x,y,z。我希望将它们与 seq_len 结合起来,因此列表将变为:x1,y1,z1,x2,y2,z2,x3,y3,z3。我怎样才能做到这一点?我试过使用粘贴,但它显然不起作用。谢谢。
a1 = c("x","y","z")
seq_len(3)
paste(a1, seq_len(3))
【问题讨论】:
如果我有一个字符串列表,x,y,z。我希望将它们与 seq_len 结合起来,因此列表将变为:x1,y1,z1,x2,y2,z2,x3,y3,z3。我怎样才能做到这一点?我试过使用粘贴,但它显然不起作用。谢谢。
a1 = c("x","y","z")
seq_len(3)
paste(a1, seq_len(3))
【问题讨论】:
使用expand.grid 和paste
do.call(paste0, expand.grid(a1, seq_along(a1)))
【讨论】:
如果您打算直接使用3 而不从您的al 序列中检索它,那么有一个简单的答案:
paste0(a1, gl(3, 3))
# "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
【讨论】:
试试outer
> c(outer(a1, seq_len(3), paste0))
[1] "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
或sapply
> c(t(sapply(a1,paste0,seq_len(3))))
[1] "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
【讨论】:
seq_len(2),我认为您无法获得像 c("x1","y1","z1") 这样的向量,因为您没有其他信息来生成长度为 3 的向量。跨度>
paste0(a1, rep(seq_len(3), each = 3))
# [1] "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
【讨论】: