【发布时间】:2018-01-26 15:22:26
【问题描述】:
我对@987654323@ 的melt 和dcast 的多个列有疑问。我在 StackOverFlow 上浏览过,但很多类似的帖子不是我想要的。我会在下面解释。
首先,data 是关于问题的原因和价值量。这是我的data部分:
ID Type Problem1 Value1 Problem2 Value2 Problem3 Value3
1 A X 500 Y 1000 Z 400
2 A X 600 Z 700
3 B Y 700 Z 100
4 B W 200 V 200
5 C Z 500 V 500
6 C X 1000 W 100 V 900
其次,ID 是独一无二的。 Type 包含三个(A、B 和 C)。有 5 个问题。
以ID == 1 为例。它是 Type A,它包含 3 个问题(X、Y 和 Z)。它的Problem X 有Value 500,Problem Y 有Value 1000,Problem Z 有Value 400。以ID == 5 为例。它是 Type C 并包含 2 个问题(Z 和 V)。它的Problem Z 有Value 500 和Problem V 有Value 500。
第三列ID、Type、Problem1、Problem2和Problem3是character。 Value1、Value2 和 Value3 是 numeric。
我想要的结果是:
Type X Y Z W V
A 1100 1000 1100 0 0
B 0 700 100 200 200
C 1000 0 500 100 1400
我不知道如何正确解释这里。我想对Type 进行分组,然后对每个问题的值求和。我认为这是关于从长到宽。我找到了参考 here 和 here。第二个可能有用。但是,我不知道从哪里开始。有什么建议吗?
# data
dt <- fread("
ID Type Problem1 Value1 Problem2 Value2 Problem3 Value3
1 A X 500 Y 1000 Z 400
2 A X 600 Z 700
3 B Y 700 Z 100
4 B W 200 V 200
5 C Z 500 V 500
6 C X 1000 W 100 V 900", fill = T)
【问题讨论】:
标签: r data.table