【问题标题】:Data Wrangling in R with DateTime column and Multiple observationsR中的数据整理与日期时间列和多个观察
【发布时间】:2020-10-01 15:04:00
【问题描述】:

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

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 中使用数据进行进一步分析,它需要是重复日期时间的长格式,因此应将其转换为类似的内容(带有新标题):

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 文档后,我无法找到一个好的示例(也有可能我不完全理解提供的示例)。

【问题讨论】:

    标签: r data-wrangling


    【解决方案1】:

    这样回答吗:

    > 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
    > 
    

    【讨论】:

      【解决方案2】:

      希望对你有帮助:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-28
        • 1970-01-01
        相关资源
        最近更新 更多