Wolfram:关联的转置图

问题描述 投票:1回答:1

我正在尝试转置关联的每个值列表。这实际上是一个数据集问题,但我认为在此处获得关联的答案会更容易。

我目前有一个看起来像这样的关联列表:

    assoc = 
{<|"a" -> 5, "b" -> 7, "c" -> 9, "d" -> 8|>,
 <|"a" -> 3, "b" -> 12, "c" -> 14, "d" -> 17|>,
 <|"a" -> 8, "b" -> 0, "c" -> 5, "d" -> 32|>}

而且我想将每个“ b”,“ c”,“ d”与每个“ a”换位:所以我的输出将是:

{{"a" -> 5, "b" -> 7},
{"a" -> 5, "c" -> 9},
{"a" -> 5, "d" -> 8},
{"a" -> 3, "b" -> 12}, 
{"a" -> 3, "c" -> 1},
{"a" -> 3, "d" -> 17},
{"a" -> 8, "b" -> 0}, 
{"a" -> 8, "c" -> 5},
{"a" -> 8, "d" -> 32}}

我尝试了各种映射和转置方法,但找不到任何有效的方法。

我希望对此有所帮助!


如果您对问题的根源感兴趣-我有一个构建如下的数据集:

ds={<|"date" -> "01/06", "a" -> 140., "b" -> 868., "c" -> 450., 
"d" -> 593., "e" -> 233., "f" -> 457.,
"g" -> 105.|>,

<|"date" -> "02/06", "a" -> 139., "b" -> 836., 
"c" -> 477., "d" -> 528., "e" -> 268., "f" -> 472., 
"g" -> 119.|>,

<|"date" -> "03/06", "a" -> 117., "b" -> 820., 
"c" -> 409., "d" -> 563., "e" -> 298., "f" -> 461.,
"g" -> 116.|>}

我正在尝试创建一个DateListPlot,其中所有列均为行,“ date”为时间序列。制作DateListPlot的最简单方法似乎是将每一列与date列进行转置:

DateListPlot[Transpose[{Normal[ds[All, "date"]] , Normal[ds[All, "a"]]}]]

但是我不知道如何对每一列执行此操作,然后将所有列作为单独的行放入DateListPlot中。

dataset associations wolfram-mathematica
1个回答
0
投票
DateListPlot[Transpose[{DateList[{#,
         {"Month", "YearShort"}}] & /@
      Map[Key["date"], ds], #}] & /@
  (Map[Key[#], ds] & /@
    {"a", "b", "c", "d", "e", "f", "g"})]
© www.soinside.com 2019 - 2024. All rights reserved.