使用粘贴和表示功能指定序列顺序

问题描述 投票:0回答:3

我正在尝试对以下代码进行反向工程

paste("a", rep(1:4, each=4), 1:4, sep="")`

这将产生以下结果:

[1] "a11" "a12" "a13" "a14" "a21" "a22" "a23" "a24" "a31" "a32" "a33" "a34" "a41" "a42" "a43" "a44" 

供参考,此代码来自LTRE {popbio}帮助文件的“示例”部分。

对于我的数据,我需要重复以下序列14次:“ a11 a12 a21 a22”。当我尝试修改原始代码,例如

paste("a", rep(1:2, each=14), 1:2, sep="") 

我反而得到

[1] "a11" "a12" "a11" "a12" "a11" "a12" "a11" "a12" "a11" "a12" "a11" "a12" "a11" "a12" "a21" "a22" "a21" "a22" "a21" "a22" "a21" "a22" "a21" "a22" "a21" "a22" "a21" "a22"`. 

从技术上讲,这些是正确的组合,但是我需要将序列设置为“ a11,a12,a21,a22”,“ a11,a12,a21,a22”等,在切换到“ a11 a12”之前不要重复7次“ a21 a22” 7次。这看起来应该很简单,但是在尝试了各种代码修改之后,我无法弄清楚。任何建议,将不胜感激。

r paste rep
3个回答
0
投票

尝试同时使用repeach参数的times

paste0("a", rep(1:2,times = 7, each = 2), 1:2)

#[1] "a11" "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11"
#[14] "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11" "a12"
#[27] "a21" "a22"

0
投票

尝试将pastereplicate一起使用:

paste(replicate(14, "a11 a12 a21 a22"), collapse = " ")

[1] "a11 a12 a21 a22 a11 a12 a21 a22 a11 a12 a21 a22 a11 a12 a21 a22 ...

0
投票

我们也可以这样做

rep(paste0("a", rep(1:2, each = 2), 1:2), 7)
#[1] "a11" "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11" "a12" "a21" "a22" "a11" "a12"
#[23] "a21" "a22" "a11" "a12" "a21" "a22"
© www.soinside.com 2019 - 2024. All rights reserved.