Как создать новый фрейм данных, повторяя 1 столбец и последовательно повторяя 2-й столбец исходного фрейма данных? - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь создать новый фрейм данных, повторяя значения в столбце original-df 1 и сопоставляя их с повторяющимися значениями из столбца original-df 2. Однако значения должны повторяться по-разному для каждого столбца. Например, значения из столбца original-df 1 будут повторяться как 1,2,3,1,2,3,1,2,3. Где в качестве значений из столбца original-df 2 следует повторить как 1,1,1,2,2,2,3,3,3.

#here is original df
df1<-data.frame(x=1:3, y=10:12)

#I've tried the followig:
data.frame(x=df1$x,y=df1[,2])->df2

range<-1:3
data.frame(x=df1$x,y=df1$y[range,2])->df3

#I then tried this:
rep(df1$x,df1$y[l,2])->df4


#output either looks like this:
   x  y
1  1 10
2  2 11
3  3 12

#Or I receive an error message:
Error in df1$y[1, 2] : incorrect number of dimensions


#I expect data output to look like this:
  x  y
  1  10
  2  10
  3  10
  1  11
  2  11
  3  11
  1  12
  2  12
  3  12

1 Ответ

1 голос
/ 02 июня 2019

Опция будет expand

library(tidyr)
expand(df1, x, y)

Или с expand.grid из base R

do.call(expand.grid, df1)
...