---
title: "init(groups:groupKeysColumnName:)"
framework: tabulardata
role: symbol
role_heading: Initializer
path: "tabulardata/rowgrouping/init(groups:groupkeyscolumnname:)"
---

# init(groups:groupKeysColumnName:)

Creates a row grouping from a list of groups.

## Declaration

```swift
init<D>(groups: [(GroupingKey?, D)], groupKeysColumnName: String) where D : DataFrameProtocol
```

## Parameters

- `groups`: An array of tuples. Each tuple pairs a key with a data frame type.
- `groupKeysColumnName`: The name of the grouping key column the row grouping creates when it generates a data frame, such as its doc://com.apple.TabularData/documentation/TabularData/RowGrouping/ungrouped() or doc://com.apple.TabularData/documentation/TabularData/RowGrouping/counts(order:) methods.

## Discussion

Discussion The member data frames must all have the same columns (count, names, and types).

## See Also

### Creating a Row Grouping

- [init(frame:columnName:timeUnit:)](tabulardata/rowgrouping/init(frame:columnname:timeunit:).md)
