Wolfram:关联的转置图

Posted

技术标签:

【中文标题】Wolfram:关联的转置图【英文标题】:Wolfram: Transpose Map of an association 【发布时间】:2020-01-23 18:20:25 【问题描述】:

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

我目前有一个如下所示的关联列表:

    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|>

我想用每个“a”转置每个“b”、“c”、“d”:所以我的输出是:

"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,其中所有列都作为行,“日期”作为时间序列。 制作 DateListPlot 的最简单方法似乎是将每一列与日期列转置:

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

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

【问题讨论】:

【参考方案1】:
DateListPlot[Transpose[DateList[#,
         "Month", "YearShort"] & /@
      Map[Key["date"], ds], #] & /@
  (Map[Key[#], ds] & /@
    "a", "b", "c", "d", "e", "f", "g")]

DateListPlot[Transpose[DateList[#,
         "Month", "YearShort"] & /@
      Map[Key["date"], ds], #] & /@
  Transpose@Values@ds[[All,
      "a", "b", "c", "d", "e", "f", "g"]]]

【讨论】:

以上是关于Wolfram:关联的转置图的主要内容,如果未能解决你的问题,请参考以下文章

Wolfram Mathematic流程控制

终极计算平台上海道宁为您提供​Wolfram技术,支持跨桌面云服务器和移动设备的强大工作流程

Wolfram API javascript 跨源共享问题

Wolfram 机器学习基础系列免费中文讲座+在线研讨会

wolfram cdf player 11.3.0 下载地址

Wolfram & Mathematica Cookbook by Eric