dataset - Wolfram:关联的转置图
问题描述
我正在尝试转置关联的每个值列表。这实际上是一个数据集问题,但我认为在这里获得关联的答案会更容易。
我目前有一个如下所示的关联列表:
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 中。
解决方案
DateListPlot[Transpose[{DateList[{#,
{"Month", "YearShort"}}] & /@
Map[Key["date"], ds], #}] & /@
(Map[Key[#], ds] & /@
{"a", "b", "c", "d", "e", "f", "g"})]
or
DateListPlot[Transpose[{DateList[{#,
{"Month", "YearShort"}}] & /@
Map[Key["date"], ds], #}] & /@
Transpose@Values@ds[[All,
{"a", "b", "c", "d", "e", "f", "g"}]]]
推荐阅读
- c# - '后的标题大写字母
- php - 如何使用 PHP 减去时间?
- excel - 合并工作表事件
- datepicker - Angular7 + Clarity Datepicker 自定义
- css - 如何在 React UI Semantic 中设置样式、对齐内容
- sql-server - 将 SQL 表作为数据导入 access Db
- dialogflow-es - 如何解决 Dialogflow 中的事务问题?
- linux - 操作 AWK 字段变量 ($1,$2,..) 并将其添加到行尾
- c# - 如何获取对象数组列表中的元素
- osgi - 根据 NodeID 在 Karaf Cellar 中的节点上调用命令