【发布时间】:2018-03-29 17:43:33
【问题描述】:
我有以下 R data.table(尽管这也应该与 data.frame 一起缩放)。目标是重塑此 data.table 以在ggplot2 中绘制为散点图。因此,我需要重塑这个 data.table 以有一个“因素”列来为点着色:
> library(data.table)
> dt
ID x_A y_A x_B y_B
1: 05AC 0.81 3 0.92 2.05
2: 01BA 0.41 5 0.63 1.8
3: Z1AC 0.41 5 0.58 1.8
4: B2BA 0.21 6.5 1.00 1.8
....
我认为正确的输出需要是以下形式:
ID type x y
05AC A 0.81 3
05AC B 0.92 2.05
01BA A 0.41 5
01BA B 0.63 1.8
Z1AC A 0.41 5
Z1AC B 0.58 1.8
B2BA A 0.21 6.5
B2BA B 1.00 1.8
是否有以这种方式“展开”data.tables 的标准方法?我很高兴在这种情况下如何使用 dplyr,但我怀疑应该有一个 data.table 方法。
melt() 会起作用,如果我能弄清楚如何创建列type,例如
melt(dt, id.vars=c("ID"))
将仅基于 ID 的一列融化
我特别困惑如何分别从第 2-3 列和第 4-5 列“刮掉”A 和 B 类型...
【问题讨论】:
标签: r dataframe data.table melt