【问题标题】:R - how to expand timestamps to each id in a dataframe? [duplicate]R - 如何将时间戳扩展到数据框中的每个 id? [复制]
【发布时间】:2019-01-09 03:53:08
【问题描述】:

我想用时间列扩展一个df。

这里我有 2 个 df:

book1 <- data.frame(
  id = c('A1', 'A2', 'A3')
)
book2 <- data.frame(
  year = c('2000', '2010', '2020')  
)

> book1
  id
1 A1
2 A2
3 A3

> book2
  year
1 2000
2 2010
3 2020

我期待的是

  id year
1 A1 2000
2 A1 2010
3 A1 2020
4 A2 2000
5 A2 2010
6 A2 2020
7 A3 2000
8 A3 2010
9 A3 2020

谁能帮我做这件事?谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以使用merge()。对于所需的结果排序,我们使用book2 作为第一个参数,然后使用reverse 作为结果的列顺序。

    rev(merge(book2, book1))
    #   id year
    # 1 A1 2000
    # 2 A1 2010
    # 3 A1 2020
    # 4 A2 2000
    # 5 A2 2010
    # 6 A2 2020
    # 7 A3 2000
    # 8 A3 2010
    # 9 A3 2020
    

    【讨论】:

      【解决方案2】:

      使用 expand.grid:

      df <- expand.grid(book1$id, book2$year)
      df
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-29
        相关资源
        最近更新 更多