2014-01-28 91 views
0

我有兩個數據幀。據幀 「天氣」 是這樣的:如何創建/合併面板數據?

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<-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 A面板數據幀:

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 

我試過合併和重塑2,但徒勞無功。我會非常感謝任何幫助。謝謝。

回答

0

您可以使用雙merge,隨着expand.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步驟是獲取將需要一個完整的數據集的「日期」和「僱員」的所有組合。

在另一個步驟中,您可以使用「0」輕鬆替換NA值。