TakeLargestBy[data,f,n]
gives the n elements ei in data for which f[ei] is largest, sorted in descending order.
TakeLargestBy[dataprop,f,n]
gives the property prop for the n elements in data for which f[ei] is largest.
TakeLargestBy[data,f,n,p]
uses the ordering function p for sorting.
TakeLargestBy[f,n]
represents an operator form of TakeLargestBy that can be applied to an expression.
TakeLargestBy
TakeLargestBy[data,f,n]
gives the n elements ei in data for which f[ei] is largest, sorted in descending order.
TakeLargestBy[dataprop,f,n]
gives the property prop for the n elements in data for which f[ei] is largest.
TakeLargestBy[data,f,n,p]
uses the ordering function p for sorting.
TakeLargestBy[f,n]
represents an operator form of TakeLargestBy that can be applied to an expression.
Details and Options
- TakeLargestBy gives the elements ei in the first level of the input data corresponding to the largest f[ei] values.
- By default, TakeLargestBy uses NumericalOrder to sort f[ei] values that are numeric expressions, Quantity objects and DateObject expressions. For other types of objects, TakeLargestBy sorts the f[ei] values by canonical Order.
- In TakeLargestBy[data,…], the data can have the following forms:
-
{e1,e2,…} list of values, including numbers, quantities, dates, ... Association[…] association of values » QuantityArray[…] quantity array or other structured array Tabular[…] type-consistent tabular data » TabularColumn[…] type-consistent column data » Dataset[…] general hierarchical data » - TakeLargestBy[assoc,f,n] gives an association of length n by taking the values in assoc that are largest according to f, preserving their keys.
- For tabular data tab, TakeLargestBy[tab,f,…] applies the function f to individual rows of tab, with the row being an association <|col1val1,…|> if tab has column keys or a list {val1,…} if tab does not have column keys.
- In TakeLargestBy[dataprop,f,n], possible forms for prop include:
-
"Element" gives each element itself » "Index" gives the index for each element » "Value" gives the value f[x] for each element x » {prop1,prop2,…} a list of multiple forms » All gives an association with element, index and f value » - TakeLargestBy[data,f,UpTo[n]] takes n elements, or as many as are available. »
- TakeLargestBy[f,n][data] is equivalent to TakeLargestBy[data,f,n].
- TakeLargestBy has option ExcludedForms. With the default setting ExcludedForms->Automatic, TakeLargestBy excludes from its final results elements for which f[ei] is None, Null or Indeterminate or has head Missing. »
- The setting ExcludedForms->{patt1,patt2,…} specifies that expressions for which f[ei] matches any of the patti should be excluded from results generated by TakeLargestBy. »
Examples
open all close allBasic Examples (5)
Give the four numbers farthest from zero:
TakeLargestBy[{-5, -2, 4, 3, 1, 9, 2, -4}, Abs, 4]Take the two longest strings in a list:
TakeLargestBy[{"", "xxx", "xx"}, StringLength, 2]Do the same using the operator form of TakeLargestBy:
{"", "xxx", "xx"}//TakeLargestBy[StringLength, 2]TakeLargestBy[StringLength, 2][{"", "xxx", "xx"}]Take the three largest Quantity lengths according to their distance to
:
TakeLargestBy[{Quantity[0.6, "Meters"], Quantity[0.1, "Meters"], Quantity[0.3, "Meters"], Quantity[0.2, "Meters"]}, Abs[# - Quantity[0.5, "Meters"]]&, 3]Take the three DateObject expressions with the largest day of the month:
RandomDate[8]TakeLargestBy[%, #["Day"]&, 3]Take the two longest strings in an association:
TakeLargestBy[<|a -> "", b -> "xxx", c -> "xx"|>, StringLength, 2]Scope (8)
Give the four numbers farthest from zero, or as many as are available if fewer:
TakeLargestBy[{-5, 7, 4}, Abs, UpTo[4]]The discovery date value for some planets is missing:
planets = PlanetData[]Map[EntityProperty["Planet", "DiscoveryDate"], planets]By default, Missing[] and several other symbolic expressions are excluded if returned by the selection function:
TakeLargestBy[planets, EntityProperty["Planet", "DiscoveryDate"], UpTo[3]]Get the two largest elements by magnitude in a list:
list = {-E^π, 7 π + (I/100), π^E, 23 I};TakeLargestBy[list -> "Element", Abs, 2]Get the positions of the two largest elements by magnitude in a list:
TakeLargestBy[list -> "Index", Abs, 2]Get the two largest magnitudes in a list:
TakeLargestBy[list -> "Value", Abs, 2]Get the two largest elements by magnitude in a list along with their positions:
TakeLargestBy[list -> {"Element", "Index"}, Abs, 2]Get the two largest elements by magnitude in a list with their positions given first:
TakeLargestBy[list -> {"Index", "Element"}, Abs, 2]Get associations containing the element, position and Abs value of the two largest elements by magnitude in a list:
TakeLargestBy[list -> All, Abs, 2]words = {"potato", "dream", "sound", "house"};They can be translated to Spanish with WordTranslation, which gives a list of possibilities:
EnglishToSpanish[word_] := First@WordTranslation[word, "English" -> "Spanish"]Map[EnglishToSpanish, words]These are the largest two words according to canonical order:
TakeLargest[words, 2]These are the largest two English words according to canonical order of their Spanish translations:
TakeLargestBy[words, EnglishToSpanish, 2]Use properties to show simultaneously the English word and its translation to Spanish:
TakeLargestBy[words -> {"Element", "Value"}, EnglishToSpanish, 2]Construct a TabularColumn object with 100 words:
col = TabularColumn[RandomWord[100]]Select the five longest words:
TakeLargestBy[col, StringLength, 5]Normalize the result to a list:
Normal[%]Find the four rows in a Tabular object with largest values in a given column:
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"}]TakeLargestBy[tab, "length", 4]Use general functional notation instead of the column name:
TakeLargestBy[tab, #length&, 4]TakeLargestBy[tab, (#length - #size)&, 4]Take a dataset of the solar system planets:
dataset = Dataset[ExampleData[{"Dataset", "Planets"}], MaxItems -> 4]Find the three planets with the largest number of moons:
TakeLargestBy[dataset, Length[#Moons]&, 3]//KeysTake a list of integer 3-vectors:
vectors = RandomInteger[{-10, 10}, {5, 3}]Norm /@ vectorsSelect the three vectors with largest norms, by default sorting numerically those norms:
TakeLargestBy[vectors, Norm, 3]Sorting the norms by canonical order can give a different result:
TakeLargestBy[vectors, Norm, 3, Order]Options (2)
ExcludedForms (2)
Take the list of all planets in the solar system:
planets = PlanetData[]Find the four planets that are currently farthest from your location, with a limit of 15 au in distance:
far = TakeLargestBy[planets, AstroDistance, 4, ExcludedForms -> _ ? (GreaterThan[Quantity[15, "AstronomicalUnit"]])]Plot the evolution of the distances during a two-year period centered at the current moment:
distances = Table[{date, AstroDistance[p, date]}, {p, far}, {date, DateRange[Now - Quantity[1, "Years"], Now + Quantity[1, "Years"], Quantity[1, "Weeks"]]}];DateListPlot[distances, PlotLegends -> far]assoc = <|"a" -> 1, "c" -> 2, "d" -> None, "e" -> 3|>Not all these keys have values in the association:
keys = {"a", "b", "c", "d", "e", "f"};Lookup[assoc, keys]Find the keys corresponding to the two largest values in the association:
TakeLargestBy[keys, Lookup[assoc, #]&, 2]By default, some symbolic objects like Missing[] or None are excluded as results of the selection function, so the previous result is equivalent to this:
TakeLargestBy[{"a", "b", "c", "d", "e", "f"}, Lookup[assoc, #]&, 2, ExcludedForms -> {_Missing, None}]Specify that no value should be excluded:
TakeLargestBy[{"a", "b", "c", "d", "e", "f"}, Lookup[assoc, #]&, 2, ExcludedForms -> {}]Specify that only values with Missing head should be excluded:
TakeLargestBy[{"a", "b", "c", "d", "e", "f"}, Lookup[assoc, #]&, 2, ExcludedForms -> {_Missing}]Applications (6)
Find the eight capitals of continental US states that are farthest from Kansas City:
TakeLargestBy[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"]Find the five most recent James Bond movies:
TakeLargestBy[EntityList@EntityClass["Movie", "JamesBondFranchise"], EntityProperty["Movie", "ReleaseDate"], 5]Find the 10 countries with the longest names:
TakeLargestBy[EntityClass["Country", All]["Name"], StringLength, 10]//ColumnFrom the BRICS group of countries, give the country that is farthest from your location:
TakeLargestBy[EntityList[EntityClass["Country", "BRICCountries"]], GeoDistance[#, Here]&, 1]Find the four US states with the largest number of neighboring states, and show them:
TakeLargestBy[EntityValue[EntityClass["AdministrativeDivision", "AllUSStatesPlusDC"], EntityProperty["AdministrativeDivision", "BorderingStates"], "EntityAssociation"], Length, 4]Find the five constellations with largest number of bright stars, showing how many each one has:
TakeLargestBy[ConstellationData[] -> All, Length @* EntityProperty["Constellation", "BrightStars"], 5]Properties & Relations (3)
TakeLargestBy[list,f,n,p] is effectively equivalent to Part[list,TakeLargest[Map[f,list]"Index",n,p]]:
list = {8, 6, -7, 10, 7, 2, -9, 1};TakeLargestBy[list, Abs, 4]Part[list, TakeLargest[Map[Abs, list] -> "Index", 4]]TakeLargestBy[{e1,e2,…},f,n] compares values f[ei] using NumericalOrder by default:
data = {{1, x}, {0, x}, {-Infinity, x}};TakeLargestBy[data, First, 2]ReverseSort[First /@ data, NumericalOrder]MaximalBy[{e1,e2,…},f,n] compares values f[ei] using canonical Order by default:
MaximalBy[data, First, 2]ReverseSort[First /@ data, Order]Both TakeLargestBy and MaximalBy take an ordering function as fourth argument, which makes them effectively equivalent:
TakeLargestBy[data, First, 2, Order] === MaximalBy[data, First, 2]MaximalBy[data, First, 2, NumericalOrder] === TakeLargestBy[data, First, 2]When there are common values of f[ei] for different elements ei in TakeLargestBy[{e1,e2,…},f,n], the original order will be kept:
list = Range[-5, 5]TakeLargestBy[list, Abs, 4]TakeLargestBy[Reverse[list], Abs, 4]Possible Issues (2)
If fewer than the requested number of elements are present, TakeLargestBy will not evaluate:
TakeLargestBy[{3, 1, 2}, f, 5]Use UpTo to get as many elements as possible:
TakeLargestBy[{3, 1, 2}, f, UpTo[5]]If the f[ei] are not comparable, TakeLargestBy will not evaluate:
TakeLargestBy[{Quantity[1, "Hour"], Quantity[5, "Feet"]}, UnitConvert, 1]Text
Wolfram Research (2015), TakeLargestBy, Wolfram Language function, https://reference.wolfram.com/language/ref/TakeLargestBy.html (updated 2025).
CMS
Wolfram Language. 2015. "TakeLargestBy." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/TakeLargestBy.html.
APA
Wolfram Language. (2015). TakeLargestBy. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TakeLargestBy.html
BibTeX
@misc{reference.wolfram_2026_takelargestby, author="Wolfram Research", title="{TakeLargestBy}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/TakeLargestBy.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_takelargestby, organization={Wolfram Research}, title={TakeLargestBy}, year={2025}, url={https://reference.wolfram.com/language/ref/TakeLargestBy.html}, note=[Accessed: 13-June-2026]}