2016-07-12 27 views
1

Ich bin fest, was scheint einfach, aber kann keine Lösung während der Suche finden.R: Wiederholen Sie den Vektor für jedes Element in Vektor

Ich möchte in der Lage sein, den folgenden Vektor in den Datenrahmen für jede Diamond_ID zu wiederholen.

ich habe:

DIAMOND_ID <- c(1,2,3,4,5) 
MY_MONTHS <- c(201501,201502,201503,201504,201505,201506) 

So dann für jeden Diamanten-ID, würde die Monate Vektor wiederholen, also die ideale Lösung ein Datenrahmen wie wäre:

enter image description here

ich das vorstellen ist eine Schleifenfunktion? Dies ist meine erste Woche in R.

Vielen Dank im Voraus.

+1

'expand.grid (DIAMOND_ID, MY_MONTHS)' im Grunde genommen - obwohl ich bin sicher, dass dies ein Duplikat ist. – thelatemail

+0

Vielleicht - http://stackoverflow.com/questions/26768819/combination-from-different-vectors oder http://stackoverflow.com/questions/35346818/r-loop-for-repeat-a-vector-n-time ? – thelatemail

Antwort

0

Sehen Sie, wenn das hilft.

DIAMOND_ID <- c(1,2,3,4,5) 
MY_MONTHS <- c(201501,201502,201503,201504,201505,201506) 
DIAMOND_ID <- as.data.frame(DIAMOND_ID) 
MY_MONTHS <- as.data.frame(MY_MONTHS) 
df1 <- data.frame() 
k <- 1 
for (i in 1:nrow(DIAMOND_ID)) { 
for (j in 1:nrow(MY_MONTHS)) { 
df1[k,1] <- DIAMOND_ID[i,1] 
df1[k,2] <- MY_MONTHS[j,1] 
k <- k+1 
} 
} 

colnames(df1)[1:2] <- c("Diamond ID","My Months") 

Ergebnisse:

> df1 
    Diamond ID My Months 
1   1 201501 
2   1 201502 
3   1 201503 
4   1 201504 
5   1 201505 
6   1 201506 
7   2 201501 
8   2 201502 
9   2 201503 
10   2 201504 
11   2 201505 
12   2 201506 
13   3 201501 
14   3 201502 
15   3 201503 
16   3 201504 
17   3 201505 
18   3 201506 
19   4 201501 
20   4 201502 
21   4 201503 
22   4 201504 
23   4 201505 
24   4 201506 
25   5 201501 
26   5 201502 
27   5 201503 
28   5 201504 
29   5 201505 
30   5 201506 
+0

Fantastisch, vielen Dank für Ihre Hilfe Pankaj –