2016-11-06 2 views
0

Ich habe 200 Versuche und 2 Bedingungen. Ich brauche eine Reihe von Strings zu erstellen, wobei jeder Versuch in jeder Bedingung 4 mal in der folgenden Reihenfolge wiederholt:wiederhole zwei Zeichenfolgen, jede für eine feste Anzahl von Malen

[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" 

Also, ich soll bis 1152 Zeilen enden. Ich habe diesen Code versucht:

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

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

auf diese Weise auch immer, ich erhalte zunächst alle mit allen Studien mit Bedingung verbunden Strings 1 und dann alle Versuche mit Bedingungen 2. Ich weiß nicht, wie fragen R, um sie in die richtige Reihenfolge zu bringen (dh Versuch 1 für 4 mal in Zustand 1, dann Versuch 1 für 4 mal in Zustand 2, Versuch 2 für 4 mal in Zustand 1, dann Versuch 2 für 4 mal in Zustand 2 und so auf). Wenn jemand Vorschläge hat, danke.

Antwort

0

Für die ursprüngliche Frage:

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

Für die Frage aus den Kommentaren:

Solution1:

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") 

Solution2:

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

Es funktioniert perfekt, aber es ist es gibt einen Weg, das zu verallgemeinern Code, so dass es auch ohne die Indizes der Bedingung funktionieren kann, also zum Beispiel, wenn ich '[1] "TRIAL_1_animal" [2] "TRIAL_1_animal" [3] "TRIAL_1_animal" [4] "TRIAL_1_animal" [5] habe " TRIAL_1_plant "[6]" TRIAL_1_plant "[7]" TRIAL_1_plant "[8]" TRIAL_1_plant "'? – dede

+0

Ich habe die ursprüngliche Antwort bearbeitet. Siehe Lösungen 1 und 2 – ira

+0

Vielen Dank! Es funktioniert perfekt. – dede

Verwandte Themen