【问题标题】:How to create/merge panel data?如何创建/合并面板数据?
【发布时间】:2014-01-28 08:53:29
【问题描述】:

我有两个数据框。数据框“天气”如下所示:

weather<-data.frame(Date=c("2012-04-01","2012-04-02","2012-04-03","2012-04-04"),Day=c("Sunday","Monday","Tuesday","Wednesday"), Temp=c(86,89,81,80))

Date       Day       Temp    
2012-04-01 Sunday     86
2012-04-02 Monday     89
2012-04-03 Tuesday    81
2012-04-04 Wednesday  80

而且,数据框“Regularity”如下所示:

Regularity<-data.frame(Date=c("2012-04-02","2012-04-04","2012-04-03","2012-04-04"),EmployeeID=c(1,1,2,2),Attendance=c(1,1,1,1))

Date        EmployeeID Attendance
2012-04-02           1          1
2012-04-04           1          1
2012-04-03           2          1
2012-04-04           2          1

我想用 R 格式创建一个面板数据框:

Date       Day       Temperature EmployeeID Attendence  
2012-04-01 Sunday     86              1         0
2012-04-02 Monday     89              1         1
2012-04-03 Tuesday    81              1         0
2012-04-04 Wednesday  80              1         1
2012-04-01 Sunday     86              2         0
2012-04-02 Monday     89              2         0
2012-04-03 Tuesday    81              2         1
2012-04-04 Wednesday  80              2         1

我已经尝试过 merge 和 reshape2,但没有成功。我将非常感谢任何帮助。谢谢。

【问题讨论】:

    标签: r merge dataframe panel


    【解决方案1】:

    您可以使用双 mergeexpand.grid,如下所示:

    merge(weather, 
          merge(Regularity, 
                expand.grid(Date = unique(weather$Date), 
                            EmployeeID = unique(Regularity$EmployeeID)), 
                all = TRUE))
    #         Date       Day Temp EmployeeID Attendance
    # 1 2012-04-01    Sunday   86          1         NA
    # 2 2012-04-01    Sunday   86          2         NA
    # 3 2012-04-02    Monday   89          1          1
    # 4 2012-04-02    Monday   89          2         NA
    # 5 2012-04-03   Tuesday   81          1         NA
    # 6 2012-04-03   Tuesday   81          2          1
    # 7 2012-04-04 Wednesday   80          1          1
    # 8 2012-04-04 Wednesday   80          2          1
    

    expand.grid 步骤是获取完整数据集所需的“日期”和“员工 ID”的所有组合。

    您可以在另一个步骤中轻松地将 NA 值替换为“0”。

    【讨论】:

      猜你喜欢
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多