R 中的数据整理与 DateTime 列和多个观察

Data Wrangling in R with DateTime column and Multiple observations

我在 CSV 文件中有一个通用格式的数据集,我将其作为 tibble 或 data.frame 读入 R。由于这来自其他地方,所以它采用像这样的宽格式,第一行是数据框的 header:

datetime City1 City2 City3 City4
2020-01-01 00:15 2.3 2.6 2.1 2.2
2020-01-01 00:30 1.1 1.8 1.6 1.2
...

为了在 R 中使用数据进行进一步分析,它需要采用重复日期时间的长格式,因此应该将其转换为类似这样的格式(使用新的 header) :

datetime Location Value
2020-01-01 00:15 City1 2.3
2020-01-01 00:15 City2 2.6
2020-01-01 00:15 City3 2.1
2020-01-01 00:15 City4 2.2
2020-01-01 00:30 City1 1.1
2020-01-01 00:30 City2 1.8
2020-01-01 00:30 City3 1.6
2020-01-01 00:30 City4 1.2
...

这似乎是一项常见的数据整理任务,但在准备好 pivot_longer 文档后我未能找到一个好的示例(也有可能我不完全理解所提供的示例)。

希望对您有所帮助:

library(data.table)
df <- setDT(your_df)
melt(df,
     id.vars='datetime',
     variable.name = 'Location', 
     value.name = 'Value')

是否回答:

> df
# A tibble: 2 x 5
  datetime            City1 City2 City3 City4
  <dttm>              <dbl> <dbl> <dbl> <dbl>
1 2020-01-01 00:15:00   2.3   2.6   2.1   2.2
2 2020-01-01 00:30:00   1.1   1.8   1.6   1.2
> df %>% pivot_longer(cols = starts_with('City'), names_to = 'Location')
# A tibble: 8 x 3
  datetime            Location value
  <dttm>              <chr>    <dbl>
1 2020-01-01 00:15:00 City1      2.3
2 2020-01-01 00:15:00 City2      2.6
3 2020-01-01 00:15:00 City3      2.1
4 2020-01-01 00:15:00 City4      2.2
5 2020-01-01 00:30:00 City1      1.1
6 2020-01-01 00:30:00 City2      1.8
7 2020-01-01 00:30:00 City3      1.6
8 2020-01-01 00:30:00 City4      1.2
>