【问题标题】:Create a data frame with date as column names创建一个以日期为列名的数据框
【发布时间】:2015-08-14 21:47:18
【问题描述】:

我想在 R 中构建一个数据表,其中列作为日期,行作为时间(没有日期信息)。基本上我有一个表格:

Time  21.04.15 22.04.15 24.04.15 03.05.15
00:00      0.4      0.4      0.4      0.4
01:00      0.4      0.4      0.4      0.4
02:00      0.4      0.4      0.4      0.4
03:00      0.6      0.6      0.6      0.6
04:00      0.6      0.6      0.6      0.6
05:00      0.7      0.8      0.8      0.8
06:00      0.7      0.8      0.8      0.8
07:00      0.7      0.8      0.8      0.8
...

我想按日期处理(绘制、提取)列,按日期和时间处理元素。

这可能吗?

【问题讨论】:

  • 不清楚预期的输出。你试过meltt
  • 你见过this previous Q&A吗?我认为简短的 A 是肯定的,您可以,但您可以考虑使用长格式,将日期和时间作为列,并将值列用于您的观察。有关更多信息,请参阅Introduction to Tidyr
  • 我不想重塑数据。我想将表格中的这些元素称为:data["2015-04-15"]data["2015-04"]。甚至更多 - 将 data["2015-04-15"] 绘制为时间序列。
  • 这与data[data$date=="2015-04-15", ] 没有什么不同,data[data$date=="2015-04-15", ] 允许数据为长格式,让一切变得更容易。欢迎您发表自己的意见。

标签: r


【解决方案1】:

您可以做的最好的事情是重命名代表日期的字符串,但我认为名称本身不能是Date 对象。 (我承认,我从未尝试过,而且我不会尝试它,因为这样做似乎是一个非常糟糕的主意)。

假设您当前的列名是 dd.mm.yy 格式,运行

names(df_object) <- format(as.Date(names(df_object), format = "%d.%m.%y"),
    format = "%Y-%m-%d")

但就像那些在 cmets 中的人一样,虽然这会奏效,但我很难想象它在哪些情况下是有益的。

【讨论】:

  • 谢谢。我将能够做所有事情 - 比较日期 - 将日期作为字符串。
猜你喜欢
  • 1970-01-01
  • 2020-02-23
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多