我正在尝试对以下代码进行反向工程
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次。这看起来应该很简单,但是在尝试了各种代码修改之后,我无法弄清楚。任何建议,将不胜感激。
尝试同时使用rep
和each
参数的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"
尝试将paste
和replicate
一起使用:
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 ...
我们也可以这样做
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"