【发布时间】:2021-02-08 22:04:03
【问题描述】:
我的数据类似于下面第一张图表的更大版本。我想把它“解开”到第二张图表中,但我不能有效地做到这一点。在底部,我有我最近的尝试,其中 IDVars 基本上是下面的前三列。在我需要杀死它之前它运行了 15 分钟。
| Name | ID | Trial | Variable | Amount |
|---|---|---|---|---|
| Name 1 | 1 | 1 | FinalSalary | 300.00 |
| Name 1 | 1 | 1 | FinalDCBalance | 400.00 |
| Name 1 | 1 | 2 | FinalSalary | 300.00 |
| Name 1 | 1 | 2 | FinalDCBalance | 300.00 |
| Name 2 | 2 | 1 | FinalSalary | 400.00 |
| Name 2 | 2 | 1 | FinalDCBalance | 400.00 |
| Name 2 | 2 | 2 | FinalSalary | 200.00 |
| Name 2 | 2 | 2 | FinalDCBalance | 300.00 |
| Name 3 | 3 | 1 | FinalSalary | 100.00 |
| Name 3 | 3 | 2 | FinalDCBalance | 400.00 |
| Name | ID | Trial | FinalSalary | FinalDCBalance |
|---|---|---|---|---|
| Name 1 | 1 | 1 | 300 | 400 |
| Name 1 | 1 | 2 | 300 | 300 |
| Name 2 | 2 | 1 | 400 | 400 |
| Name 2 | 2 | 2 | 200 | 300 |
| Name 3 | 3 | 1 | 100 | 400 |
| Name 3 | 3 | 2 | 300 | 100 |
unmelt <- reshape(dataframe, idvar = IDVars, v.names = 'variable', direction = 'wide', timevar = 'Amount')
【问题讨论】:
-
也许可以试试
data.table::dcast -
@Connor
IDVars是什么?此外,您的示例数据中没有包含Name 3和Trial == 2的行。你能澄清一下吗?请分享dput(head(your_data, 15))。 -
@Markus IDVars本质上是c('Name','ID','Trial'),以上面为例。实际数据中有更多匹配的ID。你看到的是一个错字,我在上面的图表中更正了它。
-
@ConnorJoseph 你能试试
reshape(df1, idvar = c("Name", "ID", "Trial"), timevar = "Variable", direction = "wide")你的例子应该有2个NAs。