【问题标题】:Reshaping data in R using melt使用melt在R中重塑数据
【发布时间】:2015-06-13 17:22:24
【问题描述】:

我尝试应用人们建议的方法来重塑数据,但不知何故,我未能按照我想要的方式重塑我的数据。如果有人可以提供帮助,我将不胜感激:

My data looks like this:
      AB      LP     PD1     PD2     PY1     PY2     PY3     PY4     PY5 t
1 -50.000 -50.000 -50.000 -50.000 -50.000 -50.000 -50.000 -50.000 -50.000 1
2 -50.153 -53.316 -50.416 -50.416 -53.455 -53.467 -53.700 -53.403 -53.218 2
3 -50.288 -54.399 -50.726 -50.726 -53.603 -53.644 -54.457 -53.664 -53.776 3
4 -50.410 -53.630 -50.956 -50.956 -52.385 -52.649 -53.642 -52.575 -52.740 4
5 -50.519 -53.075 -51.127 -51.127 -52.072 -52.174 -53.132 -51.715 -52.563 5
6 -50.617 -52.616 -51.255 -51.255 -52.023 -51.947 -52.602 -51.857 -52.643 6
>

我想改变它,这样我就可以用 ggplot 来绘制它,这样需要它:

AB -50.000 1
AB -50.153 2
AB -50.288 3

等,其中第三列是原始数据的最后一列,即时间(第t列)

如果我使用v=melt(values),我会得到:

      variable   value
1       AB -50.000
2       AB -50.153
3       AB -50.288
4       AB -50.410
5       AB -50.519
6       AB -50.617

几乎就在那里,但现在时间列 (t) 已添加到底部。我怎样才能有时间成为第三列?

我相信这是我需要使用 ggplot2 绘制多条线的数据格式。

感谢您的帮助

JSS

【问题讨论】:

  • 或在基础nn <- names(dd)[-length(dd)]; reshape(dd, dir = 'l', varying = list(nn), times = nn)[, 1:3]

标签: r reshape melt


【解决方案1】:

使用reshape2,你需要做:

v <- melt(values, id.vars = "t")

【讨论】:

  • 现在我为什么不知道呢?这是令人尴尬的简单,我已经挣扎了几个小时。非常感谢。
  • 不用担心。如果它为您解决了问题,请不要忘记投票和/或接受我的回答。
猜你喜欢
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 2015-02-12
  • 2022-01-16
  • 1970-01-01
  • 2022-12-06
  • 1970-01-01
相关资源
最近更新 更多