In 11.1, a Dataset consisting of an Association with composite keys with an Infinity causes failure in keying-in:
as = {{-\[Infinity], 0}, {0, 1}, {1, 2}, {3, \[Infinity]}} ->
Table[<|"a" -> RandomReal[]|>, {4}] // AssociationThread
This works:
as // Key[{0, 1}]
<|"a" -> 0.701279|>
But not in Dataset:
Dataset[as][ Key[{0, 1}]]
Failure[[WarningSign] Message: Key Key[{0, 1}] is not one of {1, 2, 3, 4}.Tag: Dataset]
Yet pre-filtering out at least one Key containing an Infinity works, eg 1st infinity out:
Dataset[as // Query[(;; 3)]][ Key[{0, 1}]]
<|"a" -> 0.701279|> (* when Normal'd *)
Similarly:
Dataset[as // Query[(2 ;;)]][ Key[{0, 1}]]
<|"a" -> 0.701279|>
Yet filtering out as a Dataset query again fails:
Dataset[as][2 ;;][Key[{0, 1}]]
Failure[[WarningSign] Message: Key Key[{0, 1}] is not one of {}. Tag: Dataset]
Further showing the kludge nature of Dataset's type system, if the keys are Quantities:
asq = ({{-\[Infinity], 0}, {0, 1}, {1, 2}, {3, \[Infinity]}} //
Map[Quantity[#, "Days"] &]) ->
Table[<|"a" -> RandomReal[]|>, {4}] // AssociationThread
<|{-[Infinity]days,0days}-><|a->0.777112|>,{0days,1day}-><|a->0.715397|>,{1day,2days}-><|a->0.5147|>,{3days,[Infinity]days}-><|a->0.635806|>|>
It works:
Dataset[asq][Key[{Quantity[0, "Days"], Quantity[1, "Days"]}]]
<|"a" -> 0.715397|>
Anyone have similar experiences with composite keys failing?


Dataset[<|{"x",0}-> a,{"y",1}-> b|>][Key[{"x",0}]]– chuy Apr 19 '17 at 14:47