重复两个字符串,每个字符串固定次数

时间:2016-11-06 16:50:25

标签: r string repeat

我有200个试验和2个条件。我需要创建一个字符串序列,其中每个条件中的每个试验按以下顺序重复4次:

 [1] "TRIAL_1_condition_1" [2] "TRIAL_1_condition_1" [3] "TRIAL_1_condition_1" [4] "TRIAL_1_condition_1"
 [5] "TRIAL_1_condition_2" [6] "TRIAL_1_condition_2" [7] "TRIAL_1_condition_2" [8] "TRIAL_1_condition_2"
 [9] "TRIAL_2_condition_1" [10] "TRIAL_2_condition_1" [11] "TRIAL_2_condition_1" [12] "TRIAL_2_condition_1"
 [13] "TRIAL_2_condition_2" [14] "TRIAL_2_condition_2" [15] "TRIAL_2_condition_2" [16] "TRIAL_2_condition_2"

所以,我应该以1152行结束。 我试过这段代码:

 x <- rep(1:200, each=4)
 x

 VarNames <-c(sprintf("TRIAL_%d_condition_1", x),sprintf("TRIAL_%d_condition_2", x))
 VarNames

然而,通过这种方式,我首先获得与条件1的所有试验相关的所有字符串,然后获得条件2的所有试验。 我不知道如何要求R将它们按正确顺序排列(即在条件1中试验1次4次,然后在条件2中试验1次4次,在条件1中试验2次4次,然后试验2次试验2次条件2中的4次,依此类推)。如果有人有建议,谢谢。

1 个答案:

答案 0 :(得分:0)

对于原始问题:

paste("TRIAL",sort(rep(1:200, 8)), "condition", rep(sort(rep(1:2,4)), 200), sep = "_")

对于评论中的问题:

解决方法1:

varnames <- paste("TRIAL",sort(rep(1:200, 8)), "condition", rep(sort(rep(1:2,4)), 200), sep = "_")
library(stringr)
varnames2 <- str_replace(varnames, "condition_1", "animal")
varnames2 <- str_replace(varnames2, "condition_2", "plant")

溶液2:

varnames3 <- paste("TRIAL", sort(rep(1:200, 8)), rep(sort(rep(c("animal", "plant"), 4)), 200), sep = "_")