AggregateRows[tab,{key1f1,…}]
異なる集計関数 fi[tab]を計算し,それらを異なるキー keyiに割り当てる.
AggregateRows[tab,fspec,gspec]
gspec が与える個別の値でグループ化し,次に fspec を使ってこれを集計する.
AggregateRows[fspec]
2引数のAggregateRowsの演算子形を表す.
AggregateRows[fspec,gspec]
3引数のAggregateRowsの演算子形を表す.
AggregateRows
AggregateRows[tab,{key1f1,…}]
異なる集計関数 fi[tab]を計算し,それらを異なるキー keyiに割り当てる.
AggregateRows[tab,fspec,gspec]
gspec が与える個別の値でグループ化し,次に fspec を使ってこれを集計する.
AggregateRows[fspec]
2引数のAggregateRowsの演算子形を表す.
AggregateRows[fspec,gspec]
3引数のAggregateRowsの演算子形を表す.
詳細
- AggregateRowsは表の簡約としても知られている.
- AggregateRowsは,通常,行のグループのデータを要約するために使われる.
- 次は,使用可能な tab の形式である.
-
Tabular[…] 型に一貫性がある表形式データ Dataset[…] 一般的な階層型データ {assoc1,assoc2,…} 共通のキーがある連想のリスト - AggregateRowsを適用しても tab の形式は変らない.
- 各グループについて,tab の行の部分集合に対応する部分表形式の stab が存在する.集計関数 fiはFromTabular[stab,"Columns"]で与えられる列の連想に適用される.
- 次は,使用可能な gspec のグループ化指定の形式である.
-
key "key"に関連付けられた個別の値でグループ化する newkeyg g[rowi]の個別の値でグループ化し,"newkey"として加える {spec1,…} すべての speciの個別の値でグループ化する
例題
すべて開く すべて閉じる例 (2)
Tabularオブジェクトを取得する:
tab = Tabular[{{"a", 1}, {"b", 2}, {"a", 3}, {"b", 4}}, {"col1", "col2"}]"col1"の結合文字列と列"col2"の値の合計を計算してすべての行を集計する:
AggregateRows[tab, {"j" -> (StringJoin[#col1]&), "t" -> (Total[#col2]&)}]まず列"col1"の共通の値がある行をグループ化して次にそれを合計することで行を集計する:
AggregateRows[tab, "total" -> Function[Total[#col2]], "col1"]演算子形を使ってキー"a"の値の関数を計算することで連想のリストを集計する:
assocs = {<|"a" -> x, "b" -> 1|>, <|"a" -> y, "b" -> 2|>, <|"a" -> x, "b" -> 1|>};AggregateRows["c" -> Function[f[#a]]][assocs]まずキー"b"の共通の値があるものをグループ化することで連想を集計する:
AggregateRows["c" -> Function[f[#a]], "b"][assocs]スコープ (8)
入力データ (3)
Tabularオブジェクトのすべての行を集計する:
AggregateRows[Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["b" -> Association["ElementType" -> "Integer64"],
"c" -> Association["ElementType" -> "Integer64"],
"date" -> Association["ElementType" -> TypeSpecifier["Date"]["Integer64", "Day", "Gregorian",
None]]], "KeyColumns" -> None, "Backend" -> "WolframKernel"], "Options" -> {},
"BackendData" -> Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {{4, 4, 4}, {}, None}, "ElementType" -> "Integer64"]],
TabularColumn[Association["Data" -> {{1, 3, 5}, {}, None}, "ElementType" -> "Integer64"]],
TabularColumn[Association["Data" -> {3, {{{1080777600000, 1112486400000, 1144195200000},
{}, None}}, None}, "ElementType" -> "Date"["Integer64", "Day", "Gregorian", None],
"CachedOriginalExpression" -> {DateObject[{2004, 4, 1}, "Day"], DateObject[{2005, 4, 3},
"Day"], DateObject[{2006, 4, 5}, "Day"]}]]}}]]]], "total" -> (Total[#b + #c]&)]Datasetオブジェクトのすべての行を集計する:
AggregateRows[Dataset[{Association["b" -> 4, "c" -> 1, "date" -> DateObject[{2004, 4, 1}, "Day"]],
Association["b" -> 4, "c" -> 3, "date" -> DateObject[{2005, 4, 3}, "Day"]],
Association["b" -> 4, "c" -> 5, "date" -> DateObject[{2006, 4, 5}, "Day"]]}], "total" -> (Total[#b + #c]&)]AggregateRows[{<|"b" -> 4, "c" -> 1|>, <|"b" -> 4, "c" -> 3|>, <|"b" -> 4, "c" -> 5|>}, "total" -> (Total[#b + #c]&)]集計関数 (2)
Tabularオブジェクトを取得する:
tab = Tabular[{{"a", 1}, {"b", 2}, {"a", 3}, {"b", 4}}, {"col1", "col2"}]集計関数 f は,各列が値のリストである列をすべて持つ連想を受け取る:
AggregateRows[tab, "newcol" -> f]名前付きのSlot表記の純関数を使って集計中の各列を抽出する:
AggregateRows[tab, "newcol" -> (f[#col1] + g[#col2]&)]あるいは,Part表記を使う:
AggregateRows[tab, "newcol" -> (f[#[[1]]] + g[#[[2]]]&)]集計関数のリストを持つTabularオブジェクトを集計する:
tab = Tabular[{{4, 1, DateObject[{2004, 4, 1}, "Day"]}, {4, 3, DateObject[{2005, 4, 3}, "Day"]}, {4, 5, DateObject[{2006, 4, 5}, "Day"]}}, {"b", "c", "date"}]AggregateRows[tab, {"total b" -> (Total[#b]&), "max c" -> (Max[#c]&), "mean date" -> (Mean[#date]&)}]AggregateRows[tab, {"total b+c" -> (Total[#b + #c]&), "mean date" -> (Mean[#date]&)}]グループ化指定 (3)
まず列"col1"の共通の値を持つ行をグループ化し次にそれを平均することで行を集計する:
tab = Tabular[{{"a", 1}, {"b", 2}, {"a", 3}, {"b", 4}}, {"col1", "col2"}]AggregateRows[tab, "newcol" -> (Mean[#col2]&), "col1"]関数 g によって決定される共通の値を持つ行をグループ化し次に平均することで行を集計する:
tab = Tabular[{{"a", 1}, {"b", 2}, {"a", 3}, {"b", 2}}, {"col1", "col2"}]AggregateRows[tab, "newcol" -> (Mean[#col2]&), "group" -> g]AggregateRows[tab, "newcol" -> (Mean[#col2]&), "group" -> (g[#col1]&)]Tabularオブジェクトを取得する:
tab = Tabular[{{4, 1, DateObject[{2004, 4, 1}, "Day"]}, {2, 3, DateObject[{2005, 4, 3}, "Day"]}, {6, 5, DateObject[{2006, 1, 5}, "Day"]}, {2, 3, DateObject[{2004, 1, 20}, "Day"]}, {4, 1, DateObject[{2005, 12, 12}, "Day"]}}, {"b", "c", "date"}]まず列"b"と列"c"のペアの共通の値を持つ行をグループ化することで行を集計する:
AggregateRows[tab, "newcol" -> (Mean[#date]&), {"b", "c"}]AggregateRows[tab, "newcol" -> (Mean[#date]&), {"b+c" -> (Total[#b + #c]&), "c"}]アプリケーション (6)
0メートル,30メートル,80メートルの3つの深度レベルにおける土壌のpHの測定値を含むTabularオブジェクトを取得する:
Tabular[{...}]AggregateRows[%, "mean" -> (Mean[#pH]&), "depth"]tab = ResourceData["Sample Tabular Data: Fisher Iris"]AggregateRows[tab, "SepalLengthMean" -> (Mean[#[[2]]]&)]AggregateRows[tab, "PetalLengthMean" -> Function[Median[#PetalLength]]]AggregateRows[tab, "species" -> Function[Length[#Species]], "Species"]"SepalLength"の平均をそれぞれの種について計算する:
AggregateRows[tab, "mean" -> Function[Mean[#SepalLength]], "Species"]噴出時間と次の噴出までの待ち時間 (分単位) を含むオールドフェイスフル間欠泉データ:
name = {"Statistics", "OldFaithful"};tab = Tabular[ExampleData[name], ExampleData[name, "ColumnHeadings"]]AggregateRows[tab, "corr" -> Function[Correlation[#Duration, #WaitingTime]]]ListPlot[tab//Normal, AxesLabel -> Automatic]AggregateRows[tab, "MeanDuration" -> Function[Mean[#Duration]], "WT ≥ 50" -> Function[#WaitingTime >= 50]]Tabularオブジェクトの通常の形式に変換する:
%//NormalPalmer Archipelago(南極大陸)のペンギンについてのデータの表を取得する:
tab = ResourceData["Sample Tabular Data: Palmer Penguins"]ColumnKeys[tab]AggregateRows[tab, "body_mass_mean" -> Function[Mean[#"body_mass"]], "sex"]AggregateRows[tab, "body_mass_median" -> Function[Median[#"body_mass"]], "island"]AggregateRows[tab, "distribution" -> (EstimatedDistribution[#"body_mass", NormalDistribution[a, b]]&), "species"]各推定分布のPDFをプロットする:
Plot[Evaluate[PDF[#, Quantity[x, "Grams"]]& /@ %[All, "distribution"]], {x, 2000, 7000}, PlotLegends -> Normal[%[All, "species"]]]ロサンゼルスの月ごとのオゾン濃度データでTabularオブジェクトを取得する:
data = ResourceData["Sample Tabular Data: Los Angeles Ozone"]rules = Map[With[{name = #}, name -> Function[Mean[#[name]]]]&, Rest[ColumnKeys[data]]];means = AggregateRows[data, rules]PieChart[Normal[means[1]], ChartLabels -> ColumnKeys[means], ColorFunction -> "RedBlueTones"]車のモデルの選択についてのTabularオブジェクトを取得する:
data = ResourceData["Sample Tabular Data: Fuel Economy"]各ドライブタイプと年による市街地と高速道路の平均燃費を求める:
AggregateRows[data, { "city_mean" -> Function[Mean[#"city"]], "hwy_mean" -> Function[Mean[#"hwy"]]}, {"drive", "year"}]2008年について,製造社ごとに市街地と高速道路の平均燃費を求める:
means = AggregateRows[Select[data, #year == 2008&], { "city_mean" -> Function[Mean[#"city"]], "hwy_mean" -> Function[Mean[#"hwy"]]}, "manufacturer"]PairedBarChart[{means -> "city_mean"}, {means -> "hwy_mean"}, BarSpacing -> {22, 0, .2}, ColorFunction -> "RedGreenSplit", ChartLabels -> {Placed[{"city mpg", "highway mpg"}, Above], None, Normal[means[All, "manufacturer"]]}]考えられる問題 (1)
グループ化の入力なしでAggregateRowsを使うとTabularオブジェクトを簡約しすぎるかもしれない:
tab = ResourceData["Sample Tabular Data: Fisher Iris"]AggregateRows[tab, "counts" -> Function[Tally[#Species]]]AggregateRows[tab, "count" -> Function[Length[#Species]], "Species"]テキスト
Wolfram Research (2025), AggregateRows, Wolfram言語関数, https://reference.wolfram.com/language/ref/AggregateRows.html.
CMS
Wolfram Language. 2025. "AggregateRows." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/AggregateRows.html.
APA
Wolfram Language. (2025). AggregateRows. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AggregateRows.html
BibTeX
@misc{reference.wolfram_2026_aggregaterows, author="Wolfram Research", title="{AggregateRows}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/AggregateRows.html}", note=[Accessed: 12-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_aggregaterows, organization={Wolfram Research}, title={AggregateRows}, year={2025}, url={https://reference.wolfram.com/language/ref/AggregateRows.html}, note=[Accessed: 12-October-2026]}