【发布时间】:2012-03-20 07:41:05
【问题描述】:
Melt 和 Cast 是在 R 中处理数据的常用操作。 在 F# 中,这将是相同类型或类似类型的记录序列。
你知道 F# 中有这样的函数吗?
(如果没有,谁有兴趣制作它们的强类型版本...)
更多信息:
Melt 将表格作为输入。 它有列标题(我们的记录字段)和一系列行。 这些列可以分为一组“标识符”和一组“变量”
Melt 将此表置于新的规范形式中,列现在为: 标识符、名为@"variable" 的列、名为@"value" 的列
如果您最初有 10 个“变量”,例如大小、重量等。对于之前的每条记录,您将拥有 10 条规范形式的记录,@'variable' 列中的值用标题填充您的“变量”中的前几列
铸造,相反,从融化的桌子重建一张桌子。
R 中的一个简短示例 melt 获取如下所示的数据 (dat):
a b c
1 1 0.48411551 0.2372291
2 2 0.58850308 0.3968759
3 3 0.74412592 0.9718320
4 4 0.93060118 0.8665092
5 5 0.01556804 0.2512399
让它看起来像这样:
> melt(dat,id.vars = "a")
a variable value
1 1 b 0.48411551
2 2 b 0.58850308
3 3 b 0.74412592
4 4 b 0.93060118
5 5 b 0.01556804
6 1 c 0.23722911
7 2 c 0.39687586
8 3 c 0.97183200
9 4 c 0.86650918
10 5 c 0.25123992
cast 基本上是相反的。
这 2 个操作在日常工作中非常强大。 一旦你拥有它们,它就会改变你的想法,就像 FP 所做的那样。
【问题讨论】:
-
你能解释一下他们是做什么的吗?
-
这里是融化(不是说它解释了很多:pinard.progiciels-bpi.ca/libR/library/reshape/html/melt-24.html)演员有更多解释:pinard.progiciels-bpi.ca/libR/library/reshape/html/cast-9g.html。当然,这并没有说明 @nicolas 正在寻找什么。
-
或最近的简短概述:(mathfinance.cn/R-reshape-package)
-
我添加了一个简单的示例来说明 R 版本中发生了什么。希望对大家有所帮助。
-
“谁有兴趣制作它们的强类型版本”。我会,但我不明白这些功能应该做什么。