【问题标题】:How do you convert a wide time series data frame into a long data frame?如何将宽时间序列数据框转换为长数据框?
【发布时间】:2017-03-16 16:43:32
【问题描述】:

上下文,我希望将一个广泛的时间序列数据帧融合到一个长数据帧中。这样我可以在 ggplot2 中绘制数据并构建一个堆积面积图。时间序列不规律(缺少一些周末和节假日)

当前数据框的样子

df
    date        item_1    item_2     item_3 ...
1 1992-03-23      8.63     7.609     1.6546 ...
2 1992-03-24      7.98     7.634     1.6533 ... 
...

上面的数据框如何转换成

    date        variable    value
1 1992-03-23    item_1       8.63
2 1992-03-23    item_2      7.609
3 1992-03-23    item_3     1.6546
2 1992-03-24    item_1       7.98

使用下面的代码我得到了错误

> melted_df = melt(df)
Using as id variables
Error in as.Date.numer(value): 'origin' must be supplied

【问题讨论】:

标签: r


【解决方案1】:

您必须将 id.vars 指定为 melt 函数中的第二个参数,它可以工作:

require(reshape)
df <- data.frame(date = as.Date(c("1992-03-23", "1992-03-24")),
                 item_1 = c(8.63, 7.98),
                 item_2 = c(7.609, 7.634),
                 item_3 = c(1.6546, 1.6533))

melt(df, "date")

你会得到:

        date variable  value
1 1992-03-23   item_1 8.6300
2 1992-03-24   item_1 7.9800
3 1992-03-23   item_2 7.6090
4 1992-03-24   item_2 7.6340
5 1992-03-23   item_3 1.6546
6 1992-03-24   item_3 1.6533

希望对你有帮助

【讨论】:

  • 这行得通。我需要在公式中指定“日期”。
  • 如何指定子集?例如new_data_frame(其中:变量 == item_1 或变量 == item_2)
  • 我会用require(dplyr) 来做这件事,然后:df_new &lt;- melt(df, "date") %&gt;% filter(variable == "item_1" | variable == "item_2")
【解决方案2】:

或者gather

library(tidyverse)

df <- data.frame(date = as.Date(c("1992-03-23", "1992-03-24")),
                 item_1 = c(8.63, 7.98),
                 item_2 = c(7.609, 7.634),
                 item_3 = c(1.6546, 1.6533))

df %>% gather(variable, value, -date)

给予,

        date variable  value
1 1992-03-23   item_1 8.6300
2 1992-03-24   item_1 7.9800
3 1992-03-23   item_2 7.6090
4 1992-03-24   item_2 7.6340
5 1992-03-23   item_3 1.6546
6 1992-03-24   item_3 1.6533

【讨论】:

    猜你喜欢
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2013-04-21
    • 2021-05-05
    相关资源
    最近更新 更多