ExtendedKey[key1,key2,…]
represents a multilevel column key in a Tabular object.
ExtendedKey
ExtendedKey[key1,key2,…]
represents a multilevel column key in a Tabular object.
Details
- ExtendedKey is used in functions such as Part to access values in Association objects or columns in Tabular objects.
- ExtendedKey is typeset stacking the keyi as different levels of the column header. Shared upper keys will be typeset spanning the columns.
Examples
open all close allBasic Examples (1)
Create a Tabular object with columns using ExtendedKey:
data = {{TimeObject[{3, 45}, "Minute"], "fox", TimeObject[{4, 21}, "Minute"], "lynx"}, {TimeObject[{1, 33}, "Minute"], "deer", TimeObject[{2, 3}, "Minute"], "fox"}};
keys = {ExtendedKey["obs A", "time"], ExtendedKey["obs A", "species"], ExtendedKey["obs B", "time"], ExtendedKey["obs B", "species"]};tab = Tabular[data, keys]ColumnKeys[tab]Extract the columns corresponding to "obs A":
tab[All, ExtendedKey["obs A", _]]Scope (2)
Take a Tabular object with ExtendedKey column keys:
tab = Tabular[...]Extract one column as a TabularColumn object:
tab[All, ExtendedKey["male", "age"]]Extract the same column as another Tabular object:
tab[All, {ExtendedKey["male", "age"]}]ExtendedKey[…,key] can be shortened to key if this uniquely identifies the column:
tab[All, {"age"}]Take a Tabular object with ExtendedKey column keys:
tab = Tabular[...]Extract all columns sharing the specified keys:
tab[All, ExtendedKey["female", _]]tab[All, ExtendedKey[_, "name"]]Using patterns in ExtendedKey is interpreted as producing a list of keys, even if only one:
tab[All, ExtendedKey[_, "age"]]None of the column keys matches this structure:
tab[All, ExtendedKey[_, "foo"]]Applications (2)
Take a Tabular object of Palmer penguin data:
penguins = ResourceData["Sample Tabular Data: Palmer Penguins"]ExtendedKey is created by PivotTable when pivoting on more than one column:
pt = PivotTable[penguins, Length[#species]&, {"year"}, {"species", "sex"}]ColumnKeys[pt]Use ExtendedKey in column transformation:
ConstructColumns[pt, {"year", "females" -> Function[#[ExtendedKey["Adelie", "female"]] + #[ExtendedKey["Gentoo", "female"]] + #[ExtendedKey["Chinstrap", "female"]]]}]Take a Tabular object of Palmer penguin data:
penguins = ResourceData["Sample Tabular Data: Palmer Penguins"]ExtendedKey is created by PivotTable when pivoting on more than one column:
pt = PivotTable[penguins, Length[#species]&, {"sex"}, {"species", "island"}]Find all column keys for "Adelie" penguins:
adelie = ColumnKeys[pt, MatchQ[#ColumnKey, ExtendedKey["Adelie", _]]&]Create a "Total" column for all "Adelie" penguins from three islands:
TransformColumns[pt, {"sex", ExtendedKey["Adelie", "Total"] -> Function[Total[# /@ adelie]]}]Properties & Relations (4)
ExtendedKey is stripped in associations when containing only one key:
<|ExtendedKey["a"] -> "foo"|>The symbol remains when containing several keys:
<|ExtendedKey["a", "b"] -> "foo"|>Key lookup in associations requires exact matching:
assoc = <|"a" -> "foo", Key["b"] -> "bar"|>{assoc["a"], assoc["b"], assoc[Key["a"]], assoc[Key["b"]]}Using ExtendedKey succeeds in all four cases:
assoc = <|"a" -> "foo", ExtendedKey["b"] -> "bar"|>{assoc["a"], assoc["b"], assoc[ExtendedKey["a"]], assoc[ExtendedKey["b"]]}ExtendedKey has Flat attribute:
Attributes[ExtendedKey]Nested ExtendedKey wrappers will therefore be automatically flattened:
ExtendedKey[ExtendedKey["a", "b"], "c"]Key always takes one argument:
key = Key["k"]ExtendedKey can take more than one argument:
ekey = ExtendedKey["a", "b", "c"]Both keys can then be used to address their values:
assoc = <|key -> "foo", ekey -> "bar"|>;assoc[key]assoc[ekey]See Also
Related Guides
History
Text
Wolfram Research (2025), ExtendedKey, Wolfram Language function, https://reference.wolfram.com/language/ref/ExtendedKey.html.
CMS
Wolfram Language. 2025. "ExtendedKey." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ExtendedKey.html.
APA
Wolfram Language. (2025). ExtendedKey. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ExtendedKey.html
BibTeX
@misc{reference.wolfram_2026_extendedkey, author="Wolfram Research", title="{ExtendedKey}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ExtendedKey.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_extendedkey, organization={Wolfram Research}, title={ExtendedKey}, year={2025}, url={https://reference.wolfram.com/language/ref/ExtendedKey.html}, note=[Accessed: 13-June-2026]}