TakeSmallestBy[data,f,n]
f[ei]が最小となる data 中の n 個の要素 eiを昇順で与える.
TakeSmallestBy[dataprop,f,n]
f[ei]が最小となる data 中の n 個の要素の特性 prop を与える.
TakeSmallestBy[data,f,n,p]
並替えに順序付け関数 p を使う.
TakeSmallestBy[f,n]
式に適用可能なTakeSmallestByの演算子形を表す.
TakeSmallestBy
TakeSmallestBy[data,f,n]
f[ei]が最小となる data 中の n 個の要素 eiを昇順で与える.
TakeSmallestBy[dataprop,f,n]
f[ei]が最小となる data 中の n 個の要素の特性 prop を与える.
TakeSmallestBy[data,f,n,p]
並替えに順序付け関数 p を使う.
TakeSmallestBy[f,n]
式に適用可能なTakeSmallestByの演算子形を表す.
詳細とオプション
- TakeSmallestByは,f[ei]の最小値に対応する,入力データの第1レベルにある要素 eiを与える.
- デフォルトで,TakeSmallestByはNumericalOrderを使って,数式,Quantityオブジェクト,DateObject式である f[ei]の値をソートする.TakeSmallestByは.その他の型のオブジェクトについては,f[ei]の値を正規順序(Order)でソートする.
- data の形式は以下のいずれでもよい.
-
{e1,e2,…} 数,数量,日付等を含む値のリスト Association[…] 値の連想 » QuantityArray[…] 数量配列またはその他の構造化配列 Tabular[…] 型に一貫性がある表データ » TabularColumn[…] 型に一貫性がある列データ » Dataset[…] 一般的な階層データ » - TakeSmallestBy[assoc,f,n]は,f によると最小である assoc 中の値を取ることで,キーは保存して,長さ n の連想を与える.
- 表形式データ tab については,TakeSmallestBy[tab,f,…]は関数 f を tab の個々の行に適用する.tab に列キーがあれば行は連想<|col1val1,…|>になり,tab に列キーがなければリスト{val1,…}になる.
- 次は,TakeSmallestBy[dataprop,f,n]における propの取り得る形である.
-
"Element" 各要素それ自体を与える » "Index" 各要素の指標を与える » "Value" 各要素 x の値 f[x]を与える » {prop1,prop2,…} 複数の形のリスト » All 要素,指標,f の値の連想を与える » - TakeSmallestBy[data,f,UpTo[n]]は,n 個(あるいはできるだけたくさん)の要素を取る. »
- TakeSmallestBy[f,n][data]はTakeSmallestBy[data,f,n]に等しい.
- TakeSmallestByにはオプションExcludedFormsがある.デフォルト設定のExcludedForms->Automaticでは,TakeSmallestByは,f[ei]がNone,Null,Indeterminateである,あるいは頭部Missingを有する要素を最終結果から削除する. »
- ExcludedForms->{patt1,patt2,…}という設定は,f[ei]が任意の pattiにマッチする式をTakeSmallestByが生成する結果から除外するように指定する. »
例題
すべて開く すべて閉じる例 (5)
TakeSmallestBy[{-5, -2, 4, 3, 1, 9, 2, -4}, Abs, 4]TakeSmallestBy[{"x", "xxx", "xx"}, StringLength, 2]TakeSmallestByの演算子形を使って同じことを行う:
{"x", "xxx", "xx"}//TakeSmallestBy[StringLength, 2]TakeSmallestBy[StringLength, 2][{"x", "xxx", "xx"}]
までの距離に従って,最も小さい3つのQuantityの長さを取る:
TakeSmallestBy[{Quantity[0.6, "Meters"], Quantity[0.1, "Meters"], Quantity[0.3, "Meters"], Quantity[0.2, "Meters"]}, Abs[# - Quantity[0.5, "Meters"]]&, 3]最も小さい日付を含む3つのDateObject式を取る:
RandomDate[8]TakeSmallestBy[%, #["Day"]&, 3]TakeSmallestBy[<|a -> "x", b -> "xxx", c -> "xx"|>, StringLength, 2]スコープ (8)
TakeSmallestBy[{-5, 7, 4}, Abs, UpTo[4]]planets = PlanetData[]Map[EntityProperty["Planet", "DiscoveryDate"], planets]デフォルトで,選択関数によって返される場合,Missing[]およびその他のいくつかの記号式は除外される:
TakeSmallestBy[planets, EntityProperty["Planet", "DiscoveryDate"], UpTo[3]]list = {-E^π, 7 π + (I/100), π^E, 23 I};TakeSmallestBy[list -> "Element", Abs, 2]TakeSmallestBy[list -> "Index", Abs, 2]TakeSmallestBy[list -> "Value", Abs, 2]リスト中で絶対値が最小の2つの要素を,その位置とともに得る:
TakeSmallestBy[list -> {"Element", "Index"}, Abs, 2]リスト中で絶対値が最小の2つの要素を,その位置を最初にして得る:
TakeSmallestBy[list -> {"Index", "Element"}, Abs, 2]リスト中で絶対値が最小の2つの要素の,要素,位置,Absの値を含む連想を得る:
TakeSmallestBy[list -> All, Abs, 2]words = {"potato", "dream", "sound", "house"};WordTranslationを使うとスペイン語に翻訳でき,可能な単語のリストが返される:
EnglishToSpanish[word_] := First@WordTranslation[word, "English" -> "Spanish"]Map[EnglishToSpanish, words]TakeSmallest[words, 2]以下は,スペイン語訳による正規順序に従った最短の2つの英単語である:
TakeSmallestBy[words, EnglishToSpanish, 2]TakeSmallestBy[words -> {"Element", "Value"}, EnglishToSpanish, 2]100個の単語でTabularColumnオブジェクトを構築する:
col = TabularColumn[RandomWord[100]]TakeSmallestBy[col, StringLength, 5]Normal[%]指定の列に最小値があるTabularオブジェクトの4列を求める:
data = {{8, 13, 18, 8, 14, 13, 18, 27}, {16.1, 29.2, 23.8, 14.7, 30.1, 27.5, 35.1, 36.2}};
tab = ToTabular[data, "Columns", {"size", "length"}]TakeSmallestBy[tab, "length", 4]TakeSmallestBy[tab, #length&, 4]TakeSmallestBy[tab, (#length - #size)&, 4]dataset = Dataset[ExampleData[{"Dataset", "Planets"}], MaxItems -> 4]TakeSmallestBy[dataset, Length[#Moons]&, 3]//Keysvectors = RandomInteger[{-10, 10}, {5, 3}]Norm /@ vectorsノルムが最も小さい3つのベクトルを選択し,デフォルトで,それらノルムを数値順に並べる:
TakeSmallestBy[vectors, Norm, 3]TakeSmallestBy[vectors, Norm, 3, Order]オプション (2)
ExcludedForms (2)
planets = PlanetData[]現在のユーザ位置から最も近くにある惑星を,(場所の惑星を除外するために).1auの距離を限界として4つ求める:
close = TakeSmallestBy[planets, AstroDistance, 4, ExcludedForms -> _ ? (LessThan[Quantity[0.1, "AstronomicalUnit"]])]distances = Table[{date, AstroDistance[p, date]}, {p, close}, {date, DateRange[Now - Quantity[1, "Years"], Now + Quantity[1, "Years"], Quantity[1, "Weeks"]]}];DateListPlot[distances, PlotLegends -> close]assoc = <|"a" -> 1, "c" -> 2, "d" -> None, "e" -> 3|>keys = {"a", "b", "c", "d", "e", "f"};Lookup[assoc, keys]TakeSmallestBy[keys, Lookup[assoc, #]&, UpTo[4]]デフォルトで,Missing[]やNoneのような記号オブジェクトは選択関数の結果からは除外されるので,前の結果は以下に等しい:
TakeSmallestBy[{"a", "b", "c", "d", "e", "f"}, Lookup[assoc, #]&, UpTo[4], ExcludedForms -> {_Missing, None}]TakeSmallestBy[{"a", "b", "c", "d", "e", "f"}, Lookup[assoc, #]&, UpTo[4], ExcludedForms -> {}]値Noneだけを除外するように指定する:
TakeSmallestBy[{"a", "b", "c", "d", "e", "f"}, Lookup[assoc, #]&, UpTo[4], ExcludedForms -> {None}]アプリケーション (6)
アメリカ本土の州の州都でカンサスシティーに最も近いものを8つ求める:
TakeSmallestBy[EntityValue[EntityClass["AdministrativeDivision", "ContinentalUSStates"], "CapitalCity"], GeoDistance[Entity["City", {"KansasCity", "Missouri", "UnitedStates"}], #]&, 8]GeoGraphics[{GeoPath[{Entity["City", {"KansasCity", "Missouri", "UnitedStates"}], #}]& /@ %, Red, PointSize[Large], Point[%]}, GeoRange -> "Country"]TakeSmallestBy[EntityList@EntityClass["Movie", "JamesBondFranchise"], EntityProperty["Movie", "ReleaseDate"], 5]TakeSmallestBy[EntityClass["Country", All]["Name"], StringLength, 10]BRICSの加盟国でユーザの現在地に最も近い場所にある国を求める:
TakeSmallestBy[EntityList[EntityClass["Country", "BRICCountries"]], GeoDistance[#, Here]&, 1]TakeSmallestBy[EntityValue[EntityClass["AdministrativeDivision", "AllUSStatesPlusDC"], EntityProperty["AdministrativeDivision", "BorderingStates"], "EntityAssociation"], Length, 7]輝星が最も少ない星座を5つ求め,それぞれの輝星がいくつかを表示する:
TakeSmallestBy[ConstellationData[] -> All, Length @* EntityProperty["Constellation", "BrightStars"], 5]特性と関係 (3)
TakeSmallestBy[list,f,n,p]は,事実上,Part[list,TakeSmallest[Map[f,list]"index",n,p]]に等しい:
list = {8, 6, -7, 10, 7, 2, -9, 1};TakeSmallestBy[list, Abs, 4]Part[list, TakeSmallest[Map[Abs, list] -> "Index", 4]]TakeSmallestBy[{e1,e2,…},f,n]はNumericalOrderを使って f[ei]の値を比較する:
data = {{1, x}, {0, x}, {-Infinity, x}};TakeSmallestBy[data, First, 2]Sort[First /@ data, NumericalOrder]MinimalBy[{e1,e2,…},f,n]は正規のOrderを使って f[ei]の値を比較する:
MinimalBy[data, First, 2]Sort[First /@ data, Order]TakeSmallestByとMinimalByは両方とも順序付け関数を第4引数として取る.これによって,両者は事実上等しくなる:
TakeSmallestBy[data, First, 2, Order] === MinimalBy[data, First, 2]MinimalBy[data, First, 2, NumericalOrder] === TakeSmallestBy[data, First, 2]TakeSmallestBy[{e1,e2,…},f,n]の異なる要素 eiについて f[ei]の共通の値があるときは,もとの順序が保持される:
list = Range[-5, 5]TakeSmallestBy[list, Abs, 4]TakeSmallestBy[Reverse[list], Abs, 4]考えられる問題 (2)
要求されたよりも少ない数の要素しかない場合は,TakeSmallestByは評価されない:
TakeSmallestBy[{3, 1, 2}, f, 5]UpToを使ってできるだけたくさんの要素を取得する:
TakeSmallestBy[{3, 1, 2}, f, UpTo[5]]f[ei]が比較不可能な場合は,TakeSmallestByは評価されない:
TakeSmallestBy[{Quantity[1, "Hour"], Quantity[5, "Feet"]}, UnitConvert, 1]関連するガイド
テキスト
Wolfram Research (2015), TakeSmallestBy, Wolfram言語関数, https://reference.wolfram.com/language/ref/TakeSmallestBy.html (2025年に更新).
CMS
Wolfram Language. 2015. "TakeSmallestBy." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/TakeSmallestBy.html.
APA
Wolfram Language. (2015). TakeSmallestBy. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TakeSmallestBy.html
BibTeX
@misc{reference.wolfram_2026_takesmallestby, author="Wolfram Research", title="{TakeSmallestBy}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/TakeSmallestBy.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_takesmallestby, organization={Wolfram Research}, title={TakeSmallestBy}, year={2025}, url={https://reference.wolfram.com/language/ref/TakeSmallestBy.html}, note=[Accessed: 03-November-2026]}