0

I just migrated from Python to R and I would like to know if there is any function in R which is similar to pandas.MultiIndex.from_product?

Example:

letters <- c('a', 'b')
numbers <- c(1, 2, 3)
df <- somefunction(letters, numbers)
df
 letters numbers
1   a       1
2   a       2
3   a       3
4   b       1
5   b       2
6   b       3
zx8754
  • 52,746
  • 12
  • 114
  • 209

1 Answers1

3

Yes:

> letters <- c('a', 'b')
> numbers <- c(1, 2, 3)
> expand.grid(letters=letters, numbers=numbers)
  letters numbers
1       a       1
2       b       1
3       a       2
4       b       2
5       a       3
6       b       3

You can also use CJ from the data.table package. It is faster. But the result is not an ordinary dataframe, it is a datatable:

> library(data.table)
> CJ(letters=letters, numbers=numbers)
   letters numbers
1:       a       1
2:       a       2
3:       a       3
4:       b       1
5:       b       2
6:       b       3
Stéphane Laurent
  • 75,186
  • 15
  • 119
  • 225
  • expand.grid part is exactly the same as duplicated post, but data.table CJ is new, I would suggest to post CJ as answer on duplicated post, and delete this one? – zx8754 Sep 06 '17 at 09:28