0
即使阅读文档后,我对如何使用dcast功能也有点困惑。我正在尝试按如下方式熔化熔融数据帧:dcast熔融数据帧如何跨多个维度?
> head(res)
factoroneid factortwoid val
1 1 1 5.8223670800
2 1 2 -1.3314644000
3 1 3 0.7206910120
4 1 4 0.0762039224
5 1 5 2.7409736300
6 1 6 0.0896606575
res包含第1列和第2列作为索引。我需要使用第一列数据作为行号和第二列数据作为列号,并使用第三列的值生成矩阵。我正在尝试这样的事情,但数据看起来不正确。
temp <- dcast(res, factoroneid + factortwoid ~ val)
预期的输出应该是:
1 2 3 4 ...
1 5.82 -1.33 0.72 0.076 ...
2
3
4
.
.
能否请你建议?
谢谢。这似乎很简单:)。我不知道如何在输出结果中指定val。为了更好地理解,在这种情况下,因为它只有一个列,它只是复制值,但如果有多个列,那么我们需要一个托架来使用聚合函数(例如SUM)来聚合它们。我的理解是否正确? – Alok
@Alok,不完全。如果来自同一列的多个值与任何单个'factoroneid〜factorwoid'组合匹配,则需要聚合函数。如果你在你的铸造数据框中有多个值列,你首先需要进一步“融化”你的数据,这样你只有一个值列,然后才是“dcast”。参见[Andrie的解释](http://stackoverflow.com/questions/11608167/cast-multiple-value-columns)。如果你有多个值列,但只想保留一列,那么你使用'value.var'。 – BrodieG