(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 11.2' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       158,          7]
NotebookDataLength[     87235,       1853]
NotebookOptionsPosition[     82726,       1751]
NotebookOutlinePosition[     85041,       1810]
CellTagsIndexPosition[     84955,       1805]
WindowTitle->GroupByKey
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {Cell["DATA ANALYSIS PACKAGE SYMBOL", "PacletNameCell",ExpressionUUID->
     "c7cd3212-b354-46a1-b89f-099767c502e6"], Cell[TextData[{
     Cell[BoxData[
      ActionMenuBox[
       FrameBox[
        InterpretationBox[Cell[TextData[{
          "See Also",
          StyleBox[" \[FilledDownTriangle]", "AnchorBarArrow",
           StripOnInput->False]
         }],ExpressionUUID->"adab90b4-4abf-4c91-a2c2-cda6f0d66e95"],
         TextCell[
          Row[{"See Also", 
            Style[" \[FilledDownTriangle]", "AnchorBarArrow"]}]]],
        StripOnInput->False], {"\<\"DataTable\"\>":>Documentation`HelpLookup[
       "paclet:DataAnalysis/ref/DataTable"], "\<\"GroupBy\"\>":>
       Documentation`HelpLookup["paclet:ref/GroupBy"]},
       Appearance->None,
       MenuAppearance->Automatic,
       MenuStyle->"SeeAlso"]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "84f2e873-95e4-45b5-b6d0-b79f80609dcb"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      ActionMenuBox[
       FrameBox[
        InterpretationBox[Cell[TextData[{
          "Related Guides",
          StyleBox[" \[FilledDownTriangle]", "AnchorBarArrow",
           StripOnInput->False]
         }],ExpressionUUID->"eabbc7bd-f7b2-499f-9ffa-389eee34f73c"],
         TextCell[
          Row[{"Related Guides", 
            Style[" \[FilledDownTriangle]", "AnchorBarArrow"]}]]],
        StripOnInput->False], {"\<\"DataAnalysis Package\"\>":>
       Documentation`HelpLookup["paclet:DataAnalysis/guide/DataAnalysis"]},
       Appearance->None,
       MenuAppearance->Automatic,
       MenuStyle->"MoreAbout"]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "75a8b77f-53b9-4e0c-a130-0efd5eea5902"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      ActionMenuBox[
       FrameBox[
        InterpretationBox[Cell[TextData[{
          "URL",
          StyleBox[" \[FilledDownTriangle]", "AnchorBarArrow",
           StripOnInput->False]
         }],ExpressionUUID->"31f9134c-80b8-494e-b6a7-06c2300a2b72"],
         TextCell[
          Row[{"URL", 
            Style[" \[FilledDownTriangle]", "AnchorBarArrow"]}]]],
        StripOnInput->False], {"\<\"DataAnalysis/ref/GroupByKey\"\>":>
       None, "\<\"Copy Wolfram Documentation Center URL\"\>":>
       Module[{DocumentationSearch`Private`nb$}, 
        DocumentationSearch`Private`nb$ = NotebookPut[
           Notebook[{
             Cell["DataAnalysis/ref/GroupByKey"]}, Visible -> False]]; 
        SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
        FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
        NotebookClose[DocumentationSearch`Private`nb$]; Null], 
       Delimiter, "\<\"Copy web URL\"\>":>
       Module[{DocumentationSearch`Private`nb$}, 
        DocumentationSearch`Private`nb$ = NotebookPut[
           Notebook[{
             Cell[
              BoxData[
               MakeBoxes[
                Hyperlink[
                "http://reference.wolfram.com/language/DataAnalysis/ref/\
GroupByKey.html"], StandardForm]], "Input", TextClipboardType -> 
              "PlainText"]}, Visible -> False]]; 
        SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
        FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
        NotebookClose[DocumentationSearch`Private`nb$]; 
        Null], "\<\"Go to web URL\"\>":>FrontEndExecute[{
         NotebookLocate[{
           URL[
            StringJoin[
             If[
              TrueQ[DocumentationBuild`Make`Private`wsmlinkQ$25284], 
              "http://reference.wolfram.com/system-modeler/", 
              "http://reference.wolfram.com/language/"], 
             "DataAnalysis/ref/GroupByKey", ".html"]], None}]}]},
       Appearance->None,
       MenuAppearance->Automatic,
       MenuStyle->"URLMenu"]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "350924cc-9904-4493-8570-9429a8b85e7e"]
    }], "AnchorBar",ExpressionUUID->"ab72e9fa-8bee-4d4c-83cb-bf89b2e68f88"]}
  }]], "AnchorBarGrid",
 CellID->1,ExpressionUUID->"0fb01439-fd05-4536-9bfe-d1226fb96f96"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell["GroupByKey", "ObjectName",ExpressionUUID->
  "60be8492-d656-452e-9585-5ab180556d46"],
 Cell[BoxData[
  TemplateBox[{8},
   "Spacer1"]],ExpressionUUID->"6905e291-3b23-4051-a6e4-64b27bacd35a"],
 Cell[BoxData[
 ""], "ObjectNameTranslation",ExpressionUUID->
  "5c6b4d9b-97fd-42b8-ac66-b54d7c62e063"]
}], "ObjectNameGrid",ExpressionUUID->"83606fb7-fb0b-4d95-be15-dfda28661c34"],

Cell[BoxData[GridBox[{
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{"GroupByKey", "[", 
       RowBox[{
        StyleBox["datatable", "TI"], ",", 
        StyleBox["f", "TI"]}], "]"}]], "InlineFormula",ExpressionUUID->
      "c8059f9b-1830-4c13-a1d1-3dbf311456b3"],
     "\[LineSeparator]returns a ",
     Cell[BoxData[
      TemplateBox[{Cell[
         TextData["DataTable"]],"paclet:DataAnalysis/ref/DataTable"},
       "RefLink",
       BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
      "461246c9-c8eb-4c83-a93c-dfae56a32ee5"],
     " in which the rows in in the input data table have been grouped into \
sublists with distinct f[row key (ID)]."
    }],ExpressionUUID->"976db835-f572-4b54-933d-92dc872ef47d"]}
  }]], "Usage",
 GridBoxOptions->{
 GridBoxBackground->{
  "Columns" -> {{None}}, "ColumnsIndexed" -> {}, "Rows" -> {{None}}, 
   "RowsIndexed" -> \
{}}},ExpressionUUID->"f8bb1073-34f2-49b3-b5b8-624fa904b57c"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{6},
   "Spacer1"]],ExpressionUUID->"de0b0fe4-a1a4-4ab1-b6d1-8bada0fc5acc"],
 "Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "6b9cb5f3-4907-49c6-acad-6c278fedfc80"]
}], "PrimaryExamplesSection",
 WholeCellGroupOpener->True,
 CellTags->"PrimaryExamplesSection",
 CellID->663181453,ExpressionUUID->"8723a165-a34e-4830-8ae7-23cccba2a8f0"],

Cell[CellGroupData[{

Cell[TextData[{
 "Basic Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "d34bf7c8-46cb-458f-86f1-c5a923bfd9dd"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CellID->282679630,ExpressionUUID->"afa4fa21-e9c3-49bb-bef7-5eaced2fe919"],

Cell["Define some data:", "ExampleText",
 CellID->27466533,ExpressionUUID->"ee77ecd9-fefb-4f6e-9c63-5cb2324472ed"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"dataset", "=", 
  RowBox[{"DataTable", "[", 
   RowBox[{"<|", 
    RowBox[{
     RowBox[{"\"\<row1a\>\"", "\[Rule]", 
      RowBox[{"<|", 
       RowBox[{
        RowBox[{"\"\<a\>\"", "\[Rule]", "1"}], ",", 
        RowBox[{"\"\<b\>\"", "\[Rule]", 
         RowBox[{"NDV", "[", 
          RowBox[{"2", ",", "0.1"}], "]"}]}], ",", 
        RowBox[{"\"\<c\>\"", "\[Rule]", 
         RowBox[{"NDV", "[", 
          RowBox[{"3", ",", "0.2"}], "]"}]}]}], "|>"}]}], ",", 
     RowBox[{"\"\<row1b\>\"", "\[Rule]", 
      RowBox[{"<|", 
       RowBox[{
        RowBox[{"\"\<a\>\"", "\[Rule]", "4"}], ",", 
        RowBox[{"\"\<b\>\"", "\[Rule]", "4"}], ",", 
        RowBox[{"\"\<c\>\"", "\[Rule]", "8"}]}], "|>"}]}], ",", 
     RowBox[{"\"\<row2a\>\"", "\[Rule]", 
      RowBox[{"<|", 
       RowBox[{
        RowBox[{"\"\<a\>\"", "\[Rule]", "2"}], ",", 
        RowBox[{"\"\<b\>\"", "\[Rule]", "5"}], ",", 
        RowBox[{"\"\<c\>\"", "\[Rule]", "1"}]}], "|>"}]}], ",", 
     RowBox[{"\"\<row2b\>\"", "\[Rule]", 
      RowBox[{"<|", 
       RowBox[{
        RowBox[{"\"\<a\>\"", "\[Rule]", "0"}], ",", 
        RowBox[{"\"\<b\>\"", "\[Rule]", "1"}], ",", 
        RowBox[{"\"\<c\>\"", "\[Rule]", "2"}]}], "|>"}]}]}], "|>"}], 
   "]"}]}]], "Input",
 CellLabel->"In[1]:=",
 CellID->141088485,ExpressionUUID->"6bed0654-9586-404e-bdd5-b18dc0cc613c"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "row1a" -> Association[
               "a" -> 1, "b" -> 
                DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
              Association["a" -> 4, "b" -> 4, "c" -> 8], "row2a" -> 
              Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
              Association["a" -> 0, "b" -> 1, "c" -> 2]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"a", "b", "c"}, {
                TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                TypeSystem`AnyType}], 4], 
             Association["ID" -> 56423116425089]]]]], Appearance -> Automatic,
         Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "row1a" -> Association[
               "a" -> 1, "b" -> 
                DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
              Association["a" -> 4, "b" -> 4, "c" -> 8], "row2a" -> 
              Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
              Association["a" -> 0, "b" -> 1, "c" -> 2]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"a", "b", "c"}, {
                TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                TypeSystem`AnyType}], 4], 
             Association["ID" -> 56423116425089]]], True]], Appearance -> 
        Automatic, Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "row1a" -> Association[
                "a" -> 1, "b" -> 
                 DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                 DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
               Association["a" -> 4, "b" -> 4, "c" -> 8], "row2a" -> 
               Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
               Association["a" -> 0, "b" -> 1, "c" -> 2]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"a", "b", "c"}, {
                 TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                 TypeSystem`AnyType}], 4], 
              Association["ID" -> 56423116425089]]]], "TSV"]], Appearance -> 
        Automatic, Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "row1a" -> Association[
                "a" -> 1, "b" -> 
                 DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                 DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
               Association["a" -> 4, "b" -> 4, "c" -> 8], "row2a" -> 
               Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
               Association["a" -> 0, "b" -> 1, "c" -> 2]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"a", "b", "c"}, {
                 TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                 TypeSystem`AnyType}], 4], 
              Association["ID" -> 56423116425089]]], True], "TSV"]], 
        Appearance -> Automatic, Evaluator -> Automatic, Method -> 
        "Preemptive", ButtonData -> "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 4, "Length" -> 4, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"a", "b", "c"}, {
                TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                TypeSystem`AnyType}], 4], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[29]} -> 1, {All, "a"} -> 
               1, {All, "b"} -> 1, {All, "c"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[48.00000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "a" -> TypeSystem`PackageScope`AtomShape[34], "b" -> 
                   TypeSystem`PackageScope`UnknownShape, "c" -> 
                   TypeSystem`PackageScope`UnknownShape]]]], 4, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[1051523042], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"a", "b", "c"}, {
                TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                TypeSystem`AnyType}], 4], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[1051523042]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"a\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"a\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    All, "a"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[All, "a"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"b\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"b\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    All, "b"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[All, "b"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"c\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"c\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    All, "c"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[All, "c"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row1a", 
                    Style[
                    "row1a", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    Key["row1a"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1a"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1a"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes[
                    StyleBox[
                    InterpretationBox[
                    StyleBox[
                    TemplateBox[{
                    TagBox[
                    InterpretationBox["\"2.00\"", 2., AutoDelete -> True], 
                    NumberForm[#, {
                    DirectedInfinity[1], 2}, ExponentFunction -> (Null& )]& ],
                     "\"(\"", "20", "\")\""}, "RowDefault"], 
                    ShowStringCharacters -> False, StripOnInput -> False], 
                    DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646]], 
                    FontFamily -> "Source Code Pro", FontSize -> 13, 
                    ShowStringCharacters -> True]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1a"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes[
                    StyleBox[
                    InterpretationBox[
                    StyleBox[
                    TemplateBox[{
                    TagBox[
                    InterpretationBox["\"3.00\"", 3., AutoDelete -> True], 
                    NumberForm[#, {
                    DirectedInfinity[1], 2}, ExponentFunction -> (Null& )]& ],
                     "\"(\"", "39", "\")\""}, "RowDefault"], 
                    ShowStringCharacters -> False, StripOnInput -> False], 
                    DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], 
                    FontFamily -> "Source Code Pro", FontSize -> 13, 
                    ShowStringCharacters -> True]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1a"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row1b", 
                    Style[
                    "row1b", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    Key["row1b"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1b"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1b"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1b"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["8"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row1b"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row2a", 
                    Style[
                    "row2a", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    Key["row2a"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2a"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["2"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2a"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["5"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2a"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2a"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row2b", 
                    Style[
                    "row2b", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][{
                    Key["row2b"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2b"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2b"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2b"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["2"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    750047344][
                    GeneralUtilities`Slice[
                    Key["row2b"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 750047344]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[750047344][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[750047344][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {249., {68., 74.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 174},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->759746274,ExpressionUUID->"ba705879-3ded-4086-aaee-8f25b095edf4"]
}, Open  ]],

Cell["\<\
Group the rows based on the first 4 characters in the row key:\
\>", "ExampleText",
 CellID->82120780,ExpressionUUID->"961429c0-5240-4fdc-b793-e4367284e01e"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"GroupByKey", "[", 
  RowBox[{"dataset", ",", 
   RowBox[{
    RowBox[{"StringTake", "[", 
     RowBox[{"#", ",", "4"}], "]"}], "&"}]}], "]"}]], "Input",
 CellLabel->"In[2]:=",
 CellID->56341588,ExpressionUUID->"17cec7b2-0adc-4f72-b7ff-6413bf7caa3d"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "row1" -> Association[
               "row1a" -> 
                Association[
                 "a" -> 1, "b" -> 
                  DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                  DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
                Association["a" -> 4, "b" -> 4, "c" -> 8]], "row2" -> 
              Association[
               "row2a" -> Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
                Association["a" -> 0, "b" -> 1, "c" -> 2]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"a", "b", "c"}, {
                 TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                 TypeSystem`AnyType}], 2], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, 
                 KeyDrop["GroupingKey"]][
                 Dataset`DatasetHandle[38083606071206]]], "ID" -> 
              38087901038502]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "row1" -> Association[
               "row1a" -> 
                Association[
                 "a" -> 1, "b" -> 
                  DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                  DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
                Association["a" -> 4, "b" -> 4, "c" -> 8]], "row2" -> 
              Association[
               "row2a" -> Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
                Association["a" -> 0, "b" -> 1, "c" -> 2]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"a", "b", "c"}, {
                 TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                 TypeSystem`AnyType}], 2], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, 
                 KeyDrop["GroupingKey"]][
                 Dataset`DatasetHandle[38083606071206]]], "ID" -> 
              38087901038502]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "row1" -> Association[
                "row1a" -> 
                 Association[
                  "a" -> 1, "b" -> 
                   DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                   DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
                 Association["a" -> 4, "b" -> 4, "c" -> 8]], "row2" -> 
               Association[
                "row2a" -> Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
                 Association["a" -> 0, "b" -> 1, "c" -> 2]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Assoc[
                TypeSystem`Atom[String], 
                TypeSystem`Struct[{"a", "b", "c"}, {
                  TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                  TypeSystem`AnyType}], 2], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, 
                  KeyDrop["GroupingKey"]][
                  Dataset`DatasetHandle[38083606071206]]], "ID" -> 
               38087901038502]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "row1" -> Association[
                "row1a" -> 
                 Association[
                  "a" -> 1, "b" -> 
                   DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646], "c" -> 
                   DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], "row1b" -> 
                 Association["a" -> 4, "b" -> 4, "c" -> 8]], "row2" -> 
               Association[
                "row2a" -> Association["a" -> 2, "b" -> 5, "c" -> 1], "row2b" -> 
                 Association["a" -> 0, "b" -> 1, "c" -> 2]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Assoc[
                TypeSystem`Atom[String], 
                TypeSystem`Struct[{"a", "b", "c"}, {
                  TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                  TypeSystem`AnyType}], 2], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, 
                  KeyDrop["GroupingKey"]][
                  Dataset`DatasetHandle[38083606071206]]], "ID" -> 
               38087901038502]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"a", "b", "c"}, {
                 TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                 TypeSystem`AnyType}], 2], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, All, 
                 TypeSystem`PackageScope`KeyDummy[33]} -> 1, {All, All, 
                 TypeSystem`PackageScope`KeyDummy[32]} -> 1, {All, All, "a"} -> 
               1, {All, All, "b"} -> 1, {All, All, "c"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[38.400000000000006`], 
                 TypeSystem`PackageScope`Limited[
                  TypeSystem`PackageScope`ColumnShape[
                   TypeSystem`PackageScope`KeyValueShape[
                    TypeSystem`PackageScope`AtomShape[48.00000000000001], 
                    TypeSystem`PackageScope`RowShape[
                    Association[
                    "a" -> TypeSystem`PackageScope`AtomShape[34], "b" -> 
                    TypeSystem`PackageScope`UnknownShape, "c" -> 
                    TypeSystem`PackageScope`UnknownShape]]]], 2, {All}]]], 
               2, {}]], "InitialData" -> 
            TypeSystem`PackageScope`CacheHandle[1942446816], "Type" -> 
            TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"a", "b", "c"}, {
                 TypeSystem`Atom[Integer], TypeSystem`AnyType, 
                 TypeSystem`AnyType}], 2], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[1942446816]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    All, All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[All, All, Keys]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    All, All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[All, All, Keys]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"a\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"a\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    All, All, "a"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[All, All, "a"]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"b\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"b\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    All, All, "b"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[All, All, "b"]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"c\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"c\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    All, All, "c"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[All, All, "c"]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row1", 
                    Style[
                    "row1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    Key["row1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"]]], "Mouse"], 
                    ImageSize -> {{38.400000000000006`, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row1a", 
                    Style[
                    "row1a", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    Key["row1"], 
                    Key["row1a"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1a"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1a"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes[
                    StyleBox[
                    InterpretationBox[
                    StyleBox[
                    TemplateBox[{
                    TagBox[
                    InterpretationBox["\"2.00\"", 2., AutoDelete -> True], 
                    NumberForm[#, {
                    DirectedInfinity[1], 2}, ExponentFunction -> (Null& )]& ],
                     "\"(\"", "20", "\")\""}, "RowDefault"], 
                    ShowStringCharacters -> False, StripOnInput -> False], 
                    DataAnalysis`NDV[2, 0.1, $CellContext`dv$621646]], 
                    FontFamily -> "Source Code Pro", FontSize -> 13, 
                    ShowStringCharacters -> True]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1a"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes[
                    StyleBox[
                    InterpretationBox[
                    StyleBox[
                    TemplateBox[{
                    TagBox[
                    InterpretationBox["\"3.00\"", 3., AutoDelete -> True], 
                    NumberForm[#, {
                    DirectedInfinity[1], 2}, ExponentFunction -> (Null& )]& ],
                     "\"(\"", "39", "\")\""}, "RowDefault"], 
                    ShowStringCharacters -> False, StripOnInput -> False], 
                    DataAnalysis`NDV[3, 0.2, $CellContext`dv$621647]], 
                    FontFamily -> "Source Code Pro", FontSize -> 13, 
                    ShowStringCharacters -> True]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1a"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {SpanFromAbove, 
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row1b", 
                    Style[
                    "row1b", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    Key["row1"], 
                    Key["row1b"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1b"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1b"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1b"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["8"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row1"], 
                    Key["row1b"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row2", 
                    Style[
                    "row2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    Key["row2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"]]], "Mouse"], 
                    ImageSize -> {{38.400000000000006`, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row2a", 
                    Style[
                    "row2a", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    Key["row2"], 
                    Key["row2a"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2a"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["2"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2a"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["5"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2a"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2a"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {SpanFromAbove, 
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["row2b", 
                    Style[
                    "row2b", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][{
                    Key["row2"], 
                    Key["row2b"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2b"]]], "Mouse"], 
                    ImageSize -> {{48.00000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2b"], 
                    Key["a"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2b"], 
                    Key["b"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["2"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    468563076][
                    GeneralUtilities`Slice[
                    Key["row2"], 
                    Key["row2b"], 
                    Key["c"]]], "Mouse"], 
                    ImageSize -> {{34, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 468563076]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[468563076][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[468563076][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {297., {68., 74.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 174},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[2]=",
 CellID->29185770,ExpressionUUID->"42ab555f-3180-4cc9-a9c4-c9886e4aa504"]
}, Open  ]]
}, Open  ]],

Cell["", "SectionFooterSpacer",ExpressionUUID->"1dbb2717-1fc3-4b46-8e14-2470617c6fa4"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{6},
   "Spacer1"]],ExpressionUUID->"a9711d45-e2da-4d85-a465-0ac5ca847757"],
 "See Also"
}], "SeeAlsoSection",
 WholeCellGroupOpener->True,
 CellID->1255426704,ExpressionUUID->"cabae905-9d5a-4a5d-a9b5-59fb1cb29bd0"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["DataTable"]],"paclet:DataAnalysis/ref/DataTable"},
   "RefLink",
   BaseStyle->{"InlineFormula", FontFamily -> "Verdana"}]], "InlineFormula",
  ExpressionUUID->"dafa2ec3-d60c-49fc-b92f-497854d2dc3e"],
 "\[NonBreakingSpace]",
 StyleBox["\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
  "InlineSeparator"],
 " ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["GroupBy"]],"paclet:ref/GroupBy"},
   "RefLink",
   BaseStyle->{"InlineFormula", FontFamily -> "Verdana"}]], "InlineFormula",
  ExpressionUUID->"796b1daa-d79e-4271-ba58-f57155f79585"]
}], "SeeAlso",
 CellID->929782353,ExpressionUUID->"add20fc3-141a-46be-a503-29761f71b546"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{6},
   "Spacer1"]],ExpressionUUID->"b60127b6-162e-48ea-a063-b521bc0deb48"],
 "Related Guides"
}], "MoreAboutSection",
 WholeCellGroupOpener->True,
 CellID->38303248,ExpressionUUID->"6974b9dd-ca90-4be6-ab23-32cbb576055c"],

Cell["", "SectionHeaderSpacer",ExpressionUUID->"362e0741-e77b-470f-b430-e99f8a94927c"],

Cell[BoxData[
 TemplateBox[{Cell[
    TextData["DataAnalysis Package"]],
   "paclet:DataAnalysis/guide/DataAnalysis"},
  "RefLink",
  BaseStyle->"MoreAbout"]], "MoreAbout",
 CellID->14685008,ExpressionUUID->"4a8e1643-7b5f-4619-903e-000643222379"]
}, Open  ]],

Cell[" ", "FooterCell",ExpressionUUID->"43da6e7d-a3b0-4e30-a692-9a3f20e12d20"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{725, 750},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
WindowTitle->"GroupByKey",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "SymbolColor", "LinkTrails" -> 
  GridBox[{{
      RowBox[{
        ButtonBox[
        "DataAnalysis Package", ButtonData -> 
         "paclet:DataAnalysis/guide/DataAnalysis", 
         BaseStyle -> {"Link", "DockedLinkTrail"}]}]}}, ColumnAlignments -> 
    Left], "HasOptions" -> False, "ExampleCounter" -> 1, "NeedPlatMsgIn" -> 
  None, "RootCaptions" -> "", 
  "Metadata" -> {
   "built" -> "{2018, 3, 25, 14, 36, 47.6109680}", 
    "history" -> {"XX", "", "", ""}, "context" -> "DataAnalysis`", 
    "keywords" -> {}, "specialkeywords" -> {}, 
    "tutorialcollectionlinks" -> {}, "index" -> True, "label" -> 
    "Data Analysis Package Symbol", "language" -> "en", "paclet" -> 
    "DataAnalysis Package", "status" -> "None", "summary" -> 
    "GroupByKey[datatable, f] returns a DataTable in which the rows in in the \
input data table have been grouped into sublists with distinct f[row key \
(ID)].", "synonyms" -> {}, "tabletags" -> {}, "title" -> "GroupByKey", 
    "titlemodifier" -> "", "windowtitle" -> "GroupByKey", "type" -> "Symbol", 
    "uri" -> "DataAnalysis/ref/GroupByKey"}, "SearchTextTranslated" -> "", 
  "NewStyles" -> False},
CellContext->"Global`",
FrontEndVersion->"11.2 for Microsoft Windows (64-bit) (September 10, 2017)",
StyleDefinitions->Notebook[{
   Cell[
    StyleData[
    StyleDefinitions -> FrontEnd`FileName[{"Wolfram"}, "Reference.nb"]]], 
   Cell[
    StyleData["Input"], CellContext -> "Global`"], 
   Cell[
    StyleData["Output"], CellContext -> "Global`"]}, Visible -> False, 
  TaggingRules -> {"NewStyles" -> False}, FrontEndVersion -> 
  "11.2 for Microsoft Windows (64-bit) (September 10, 2017)", 
  StyleDefinitions -> "Default.nb"]
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{
 "PrimaryExamplesSection"->{
  Cell[6182, 158, 435, 11, 35, "PrimaryExamplesSection",ExpressionUUID->"8723a165-a34e-4830-8ae7-23cccba2a8f0",
   CellTags->"PrimaryExamplesSection",
   CellID->663181453]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"PrimaryExamplesSection", 84757, 1798}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[582, 21, 4185, 94, 55, "AnchorBarGrid",ExpressionUUID->"0fb01439-fd05-4536-9bfe-d1226fb96f96",
 CellID->1],
Cell[CellGroupData[{
Cell[4792, 119, 395, 9, 52, "ObjectNameGrid",ExpressionUUID->"83606fb7-fb0b-4d95-be15-dfda28661c34"],
Cell[5190, 130, 955, 23, 131, "Usage",ExpressionUUID->"f8bb1073-34f2-49b3-b5b8-624fa904b57c"]
}, Open  ]],
Cell[CellGroupData[{
Cell[6182, 158, 435, 11, 35, "PrimaryExamplesSection",ExpressionUUID->"8723a165-a34e-4830-8ae7-23cccba2a8f0",
 CellTags->"PrimaryExamplesSection",
 CellID->663181453],
Cell[CellGroupData[{
Cell[6642, 173, 308, 7, 29, "ExampleSection",ExpressionUUID->"afa4fa21-e9c3-49bb-bef7-5eaced2fe919",
 CellID->282679630],
Cell[6953, 182, 114, 1, 38, "ExampleText",ExpressionUUID->"ee77ecd9-fefb-4f6e-9c63-5cb2324472ed",
 CellID->27466533],
Cell[CellGroupData[{
Cell[7092, 187, 1364, 35, 59, "Input",ExpressionUUID->"6bed0654-9586-404e-bdd5-b18dc0cc613c",
 CellID->141088485],
Cell[8459, 224, 32560, 647, 195, "Output",ExpressionUUID->"ba705879-3ded-4086-aaee-8f25b095edf4",
 CellID->759746274]
}, Open  ]],
Cell[41034, 874, 167, 3, 38, "ExampleText",ExpressionUUID->"961429c0-5240-4fdc-b793-e4367284e01e",
 CellID->82120780],
Cell[CellGroupData[{
Cell[41226, 881, 273, 7, 26, "Input",ExpressionUUID->"17cec7b2-0adc-4f72-b7ff-6413bf7caa3d",
 CellID->56341588],
Cell[41502, 890, 39363, 798, 195, "Output",ExpressionUUID->"42ab555f-3180-4cc9-a9c4-c9886e4aa504",
 CellID->29185770]
}, Open  ]]
}, Open  ]],
Cell[80892, 1692, 86, 0, 70, "SectionFooterSpacer",ExpressionUUID->"1dbb2717-1fc3-4b46-8e14-2470617c6fa4"]
}, Open  ]],
Cell[CellGroupData[{
Cell[81015, 1697, 260, 7, 70, "SeeAlsoSection",ExpressionUUID->"cabae905-9d5a-4a5d-a9b5-59fb1cb29bd0",
 CellID->1255426704],
Cell[81278, 1706, 710, 18, 70, "SeeAlso",ExpressionUUID->"add20fc3-141a-46be-a503-29761f71b546",
 CellID->929782353]
}, Open  ]],
Cell[CellGroupData[{
Cell[82025, 1729, 266, 7, 70, "MoreAboutSection",ExpressionUUID->"6974b9dd-ca90-4be6-ab23-32cbb576055c",
 CellID->38303248],
Cell[82294, 1738, 86, 0, 70, "SectionHeaderSpacer",ExpressionUUID->"362e0741-e77b-470f-b430-e99f8a94927c"],
Cell[82383, 1740, 246, 6, 70, "MoreAbout",ExpressionUUID->"4a8e1643-7b5f-4619-903e-000643222379",
 CellID->14685008]
}, Open  ]],
Cell[82644, 1749, 78, 0, 70, "FooterCell",ExpressionUUID->"43da6e7d-a3b0-4e30-a692-9a3f20e12d20"]
}
]
*)

(* End of internal cache information *)

