我有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次,依此类推)。如果有人有建议,谢谢。
答案 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 = "_")