【问题标题】:Create R dataframe with column A * column B [duplicate]使用 A 列 * B 列创建 R 数据框 [重复]
【发布时间】:2018-09-07 11:10:50
【问题描述】:

如何创建包含 A 列 * B 列的数据框。

例如,“年”列(2018 - 2025 年)和每年 1:52 的“周”列。

基本上,我想要一个更好的方法来获得这个结果:

a =data.table( c(2018) , c(1:52)) 
x <- c("year", "week")
colnames(a) <- x


b =data.table(c(2019) , c(1:52)) 
x <- c("year", "week")
colnames(b) <- x

c =data.table(c(2020) , c(1:52)) 
x <- c("year", "week")
colnames(c) <- x

d = rbind(a, b, c)

编辑:谢谢!!

【问题讨论】:

    标签: r dataframe


    【解决方案1】:
    d <- expand.grid(year = c(2018:2020), week = c(1:52))
    

    【讨论】:

      【解决方案2】:

      使用tidyr 包中的crossing。类似:

      library(tidyr)
      library(data.table)
      crossing(
        data.table(year=2018:2020),
        data.table(week=1:52))
      

      详情请见https://stackoverflow.com/a/49630818/1358308

      【讨论】:

      • 这个问题感觉像是重复的,所以觉得不值得付出太多努力……现在添加了一个例子
      【解决方案3】:

      带基地R

      data.frame(year = rep(2018:2020, 52), week = rep(1:52, length(year)))
      

      【讨论】:

        【解决方案4】:

        由于您似乎使用data.table,这里还有一个选项。

        library(data.table)
        CJ('year' = 2018:2020, 'week' = 1:52)
        #     year week
        #  1: 2018    1
        #  2: 2018    2
        #  3: 2018    3
        #  4: 2018    4
        #  5: 2018    5
        # ---        
        #152: 2020   48
        #153: 2020   49
        #154: 2020   50
        #155: 2020   51
        #156: 2020   52
        

        【讨论】:

          【解决方案5】:

          基本上,

          year = rep(c(2018:2025),each = 52)
          week = rep(c(1:52), length(c(2018:2025)))
          d = as.data.frame(cbind(year, week))
          

          【讨论】:

          • 用代码解释会提高答案的质量。
          【解决方案6】:

          您只需拨打data.frame

          data.frame(year=rep(2018:2020,52),weak=rep(c(1:52),3))
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-08-07
            • 1970-01-01
            • 2022-07-11
            • 2021-03-18
            • 2012-11-12
            • 2018-06-20
            • 1970-01-01
            • 2018-09-04
            相关资源
            最近更新 更多