2017-04-05 95 views
0

我有一個數據框,包含日期,組(因子)和值列。數據幀 - 填寫缺失數據

Date  Group  Value 
01/01/2015  A   1 
01/01/2015  B   5 
01/01/2015  C   4 
01/02/2015  A   10 
01/02/2015  B   1 
01/03/2015  C   5 

某些組沒有爲日期輸入的值。在上面的例子中,C組的值爲01/02/2015。 A & B沒有2015年3月1日的值。

我想填爲零值這些失蹤行,像這樣(順序並不重要):

Date   Group Value 
01/01/2015  A  1 
01/01/2015  B  5 
01/01/2015  C  4 
01/02/2015  A  10 
01/02/2015  B  1 
01/03/2015  C  5 
01/03/2015  A  0 
01/03/2015  B  0 
01/02/2015  C  0 

有誰知道一個簡單的方法來實現這一目標?謝謝。

回答

2

試試這一行。它將數據從長格式轉換爲寬格式,然後再轉換爲長格式。沒有包被使用。

as.data.frame(xtabs(Value ~ Group + Date, DF), responseName = "Value") 

,並提供:

Group  Date Value 
1  A 01/01/2015  1 
2  B 01/01/2015  5 
3  C 01/01/2015  4 
4  A 01/02/2015 10 
5  B 01/02/2015  1 
6  C 01/02/2015  0 
7  A 01/03/2015  0 
8  B 01/03/2015  0 
9  C 01/03/2015  5 

注:在重現的形式輸入:

Lines <- "Date Group  Value 
01/01/2015  A   1 
01/01/2015  B   5 
01/01/2015  C   4 
01/02/2015  A   10 
01/02/2015  B   1 
01/03/2015  C   5" 

DF <- read.table(text = Lines, header = TRUE) 
+0

賓果遊戲,完美地工作。簡單而優雅的解決方案。非常感激!嘗試接受答案時出現錯誤,因此稍後再試。 – Gary866